首页 > 解决方案 > python pandas - 根据连接数据帧的索引和/或ID设置列的列值

问题描述

我有至少两个连接数据帧的连接数据帧:

i.e. 
df1
  Name | Type | ID
0 Joe     A     1
1 Fred    B     2
2 Mike   Both   3
3 Frank  Both   4

df2
  Name | Type | ID
0 Bill   Both    1
1 Jill   Both    2
2 Mill   B       3
3 Hill   A       4

ConcatDf:
  Name | Type | ID
0 Joe     A     1
1 Fred    B     2
2 Mike   Both   3
3 Frank  Both   4
0 Bill   Both   1
1 Jill   Both   2
2 Mill   B      3
3 Hill   A      4

假设将它们连接起来,我想为 toType的所有记录和df1to的C所有记录df2设置B。这可能吗?

数据帧的索引可以有很大不同的大小。

提前致谢。

标签: pandasdataframeconcatenation

解决方案


df3 = pd.concat([df1,df2], keys = (1,2))

df3.loc[(1), 'Type'] == 'C'

当您连接时,您可以分配 df 的键。这将创建一个多索引,其中键分隔连接的 df。然后,当您使用.locwith 键时,您可以(在键周围使用来呼叫组。在上面的代码中,我们将 df1 的所有类型(键为 1)更改为 C。


推荐阅读