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

标签 python pandas

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

我一直在阅读有关 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 选项可以做到这一点。 defaultssuffixes=('_x', '_y')

一般来说,重命名列可以用rename来完成。方法。

关于python - Pandas:合并两个数据框时控制新的列名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34338374/

相关文章:

python - 相当于 Python 在 Scala 中的 Pass

python - 从python中的二进制数据中获取unicode字符串

python - Pandas 将小时和分钟列合并为时间

python pandas 如何复制有关索引列的列值

python - 从具有相同 ID 的行创建列

python - PyCharm 不会导入 PyGame

python - 背景中的matplotlib垂直空间

python - mongoengine中的对象和过滤器有什么区别?

python - 查找大型数据集中两个日期之间是否有假期?

python - 如何对 pandas 中的浮点值进行二值化?