Я ищу, чтобы присоединиться к двум фреймам данных, используя pandas в столбцах «Дата». Обычно я использую df2 = pd.concat ([df, df1], axis = 1), однако по какой-то причине это не работает.Взаимодействие/Объединение двух разных Dataframes Pandas
В этом примере я извлекаю данные из файла sql, создавая новый столбец «Дата», который объединяет мои столбцы года и месяца, а затем поворачивается. В то время как я пытаюсь объединить два кадра данных, блок данных отображается бок о бок вместо объединения.
Что приходит: Дата Графа Кошки Дата Графа Собаки
То, что я хочу, чтобы придумать:
Дата Графа Кошки Графа Собаки
Любые идеи? Моя другая проблема заключается в том, что я стараюсь, чтобы столбцы Date записывали excel как строку, а не функцию datetime. Пожалуйста, держите это в голове, думая о решении.
Вот мой код:
executeScriptsFromFile('cats.sql')
df = pd.DataFrame(cursor.fetchall())
df.columns = [rec[0] for rec in cursor.description]
monthend = {'Q1':'3/31','Q2':'6/30','Q3':'9/30','Q4':'12/31'}
df['Date']=df['QUARTER'].map(monthend)+'/'+ df['YEAR']
df['Date'] = pd.to_datetime(df['Date'])
df10= df.pivot_table(['Breed'], ['Date'], aggfunc=np.sum,fill_value=0)
df10.reset_index(drop=False, inplace=True)
df10.reindex_axis(['Breed', 'Count of Cats'], axis=1)
df10.columns = ('Breed', 'Count of Cats')
executeScriptsFromFile('dogs.sql')
df = pd.DataFrame(cursor.fetchall())
df.columns = [rec[0] for rec in cursor.description]
monthend = {'Q1':'3/31','Q2':'6/30','Q3':'9/30','Q4':'12/31'}
df['Date']=df['QUARTER'].map(monthend)+'/'+ df['YEAR']
df['Date'] = pd.to_datetime(df['Date'])
df11= df.pivot_table(['Breed'], ['Date'], aggfunc=np.sum,fill_value=0)
df11.reset_index(drop=False, inplace=True)
df11.reindex_axis(['Breed', 'Count of Dogs'], axis=1)
df11.columns = ('Breed', 'Count of Dogs')
df11a= df11.round(0)
df12= pd.concat([df10, df11a],axis=1)
Вы можете добавить некоторые образцы ваших dataframes? Также существует некоторая разница в типе 'df10.index' и' d11.index'? Потому что это должно сработать. – jezrael
Я не уверен, но, похоже, вам нужно удалить 'df10.reset_index (drop = False, inplace = True)' и 'df11.reset_index (drop = False, inplace = True)', проверьте его. – jezrael
Или, возможно, нужно удалить только один уровень, нужно «date» как индекс в обоих кадрах данных до 'concat' – jezrael