【问题标题】:Merge two pandas Dataframes in python在python中合并两个熊猫数据框
【发布时间】:2021-05-30 06:21:08
【问题描述】:

您好,我有两个 pandas 数据框。

数据1

Player 1 2 3
p1 value1 value2 value6
p2 value1 value6 value7
p3 value1 value8 value9
p4 value6 value6 value6

数据2

1 2 3
value1 value8 value6

我想合并它们,以便让这张表进一步工作

合并

Player 1 2 3
p1 1 0 1
p2 1 0 0
p3 1 1 0
p4 0 0 1

你有什么想法吗?

【问题讨论】:

  • 数据框data2可以包含多于一行吗?

标签: python pandas merge


【解决方案1】:

无需连接 - 只需直接比较值:

for i in data1.columns[1:]:
    data1[i] = (data1[i] == data2.iloc[0].loc[i]).astype('int')

print(data1)
  Player  1  2  3
0     p1  1  0  1
1     p2  1  0  0
2     p3  1  1  0
3     p4  0  0  1

另一种方法是复制data2中的行并与data1进行比较:

data1[data1.columns[1:]] = (
    data1[data1.columns[1:]] == pd.concat([data2]*data1.shape[1]).reset_index(drop=True)
).astype('int')

【讨论】:

  • 嗨@mck,我收到“raise KeyError(key) KeyError: '0'”
  • 用第二种方法我得到这个错误:raise ValueError(ValueError: Can only compare same-labeled DataFrame objects
  • data1和data2的索引是多少?
  • in data1 row= Player, 1, 2, 3 .....; column= 0, 1, 2, 3... 就像您的 print(data1) in data2 row= 1, 2, 3 column 0,1,2,3...
  • 为什么data2有多行?在您的问题中只有 1 行。
猜你喜欢
  • 2017-06-11
  • 2016-01-01
  • 2020-08-16
  • 2017-09-02
  • 2017-11-03
相关资源
最近更新 更多