python - Pandas Merge - 如何避免重复列

标签 python pandas

我正在尝试合并两个数据框。每个数据框都有两个索引级别(日期、cusip)。例如,在列中,某些列在两者之间匹配(货币、调整日期)。

按索引合并这些的最佳方法是什么,但不要复制两份货币和调整日期。

每个数据框有 90 列,所以我尽量避免手动写出所有内容。

df:                 currency  adj_date   data_col1 ...
date        cusip
2012-01-01  XSDP      USD      2012-01-03   0.45
...

df2:                currency  adj_date   data_col2 ...
date        cusip
2012-01-01  XSDP      USD      2012-01-03   0.45
...

如果我这样做:

dfNew = merge(df, df2, left_index=True, right_index=True, how='outer')

我明白了

dfNew:              currency_x  adj_date_x   data_col2 ... currency_y adj_date_y
date        cusip
2012-01-01  XSDP      USD      2012-01-03   0.45             USD         2012-01-03

谢谢! ...

最佳答案

您可以计算出仅在一个 DataFrame 中的列,并使用它来选择合并中的列子集。

cols_to_use = df2.columns.difference(df.columns)

然后执行合并(注意这是一个索引对象,但它有一个方便的 tolist() 方法)。

dfNew = merge(df, df2[cols_to_use], left_index=True, right_index=True, how='outer')

这将避免任何列在合并中发生冲突。

关于python - Pandas Merge - 如何避免重复列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19125091/

相关文章:

python - Pip 安装在 Virtualenv 中工作,但*不*与 `-r requirements.txt` 一起工作

python - reshape Pandas.DataFrame 的 Pythonic 方式

python - 使用 Counter 计算带空格的字符串的出现次数

python - 在 Python 中使用 ElementTree 发出命名空间规范

python - 将 axhline 添加到图例

python - pandas python 中的日期范围问题

python - 如何正确使用 groupby 和先前的过滤器

python - 如何将周期间分解为数据框中的多行

python - 使用 pandas 从世界银行 API 获取数据

python - 为什么 ValueError : Need more than 1 value to unpack