当前位置:  开发笔记 > 编程语言 > 正文

Pandas:合并两个数据帧时控制新的列名?

如何解决《Pandas:合并两个数据帧时控制新的列名?》经验,为你挑选了2个好方法。

我想将两个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))

我想将它们合并在一起以获得最终数据帧,连接orgname值,然后使用适当的前缀为所有其他列添加前缀.

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_xpresents_spend等?



1> itzy..:

suffixes合并功能中的选项执行此操作.该默认值是suffixes=('_x', '_y').

通常,可以使用重命名方法重命名列.



2> Nguyen Ngoc ..:

您可以重命名的所有列广告设置其如下。

ad.columns = ['org', 'name', 'presents_spend', 'trees_spend']

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有