Я хотел бы объединить два блока данных Pandas вместе и управлять именами новых значений столбцов.Pandas: управлять новыми именами столбцов при слиянии двух фреймов данных?
Первоначально я создал dataframes из файлов CSV. Оригинальные CSV файлы выглядят следующим образом:
# presents.csv
org,name,items,spend...
12A,Clerkenwell,151,435,...
12B,Liverpool Street,37,212,...
...
# trees.csv
org,name,items,spend...
12A,Clerkenwell,0,0,...
12B,Liverpool Street,2,92,...
...
Теперь у меня есть два кадра данных:
df_presents = pd.read_csv(StringIO(presents_txt))
df_trees = pd.read_csv(StringIO(trees_txt))
Я хочу, чтобы объединить их вместе, чтобы получить окончательный кадр данных, вступив на значениях org
и name
, а затем префикс всех остальных столбцов с соответствующим префиксом.
org,name,presents_items,presents_spend,trees_items,trees_spend...
12A,Clerkenwell,151,435,0,0,...
12B,Liverpool Street,37,212,2,92,...
Я читал документацию по номеру merging and joining. Это, кажется, правильно объединить и привести в нужное число столбцов:
ad = pd.DataFrame.merge(df_presents, df_trees,
on=['practice', 'name'],
how='outer')
Но тогда делать print list(aggregate_data.columns.values)
показывает мне следующие столбцы:
[org', u'name', u'spend_x', u'spend_y', u'items_x', u'items_y'...]
Как я могу переименовать spend_x
быть presents_spend
, и т.д.?
Вы можете использовать опцию 'suffixes', чтобы они назывались' spend_presents' и т. Д. Будет ли это работать? В противном случае используйте функцию «rename». – itzy
@itzy да, спасибо! пожалуйста, отправьте в качестве ответа, и я соглашусь! – Richard