鉴于这些数据帧…:
DF = pd.DataFrame({'COL1': ['A', 'B', 'C', 'D','D','D'],
'COL2': [11032, 1960, 11400, 11355, 8, 7],
'year': ['2016', '2017', '2018', '2019', '2020', '2021']})
DF
COL1 COL2 year
0 A 11032 2016
1 B 1960 2017
2 C 11400 2018
3 D 11355 2019
4 D 8 2020
5 D 7 2021
DF2 = pd.DataFrame({'ColX': ['D'], 'ColY':['2021'], 'ColZ':[100]
DF2
ColX ColY ColZ
0 D 2021 100
如果满足以下条件:
COL1=来自DF2的ColX
年份=来自DF2的ColY
然后将COL2中的值从DF2更改为ColZ。在
这看起来像是您想要
update
DF
,其中的数据来自DF2
。在假设
DF2
中的所有值对于ColX
和ColY
中的给定值对是唯一的:我将一个临时数据帧(})与}中的值相匹配。所有不匹配的值都用
DF2.set_index(['ColX', 'ColY'])[['ColZ']]
)合并到DF中,它将ColZ中的所有值相加,其中它的索引(ColX
和{COL1
和{NA
填充。在然后我使用
update
从中的非空值重写DF.COL2
中的值DF.ColZ公司. 在然后我删除DF['ColZ']进行清理。在
如果
ColZ
与DF
中的现有列名匹配,则需要进行一些调整。在另一种解决方案如下:
^{pr2}$输出与上述相同。在
相关问题 更多 >
编程相关推荐