我想将两个Pandas数据帧合并在一起并控制新列值的名称.
我最初是从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,...
我一直在阅读有关合并和加入的文档.这似乎正确合并并产生正确的列数:
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
合并功能中的选项执行此操作.该默认值是suffixes=('_x', '_y')
.
通常,可以使用重命名方法重命名列.
您可以重命名的所有列广告设置其列如下。
ad.columns = ['org', 'name', 'presents_spend', 'trees_spend']