gpt4 book ai didi

python - Pandas - 当 nan 时,从另一个数据框中添加值

转载 作者:太空宇宙 更新时间:2023-11-04 02:54:22 25 4
gpt4 key购买 nike

我有一些代码:

import pandas as pd
import numpy as np

df = pd.DataFrame({'COL1': [15, np.nan,np.nan,24],
'COL2' : [7.2,3.5,np.nan, 0.1]})

df2 = pd.DataFrame({'COL1_add': [2, 3, 5, 2],
'COL2_add' : [-2.3,-5.3,-3.8,-4.5]})

我想使用 df2 通过将它们的值添加到前面的行来填充 df 中的 NaN,有些行将有 10 个甚至数百个 NaN(df2 将没有 NaN),所以我可以'不要只是做一个简单的移位和添加。

对于这个例子,我希望结果是:

df
COL1 COL2
0 15 7.2
1 18 3.5
2 23 -0.3
3 24 0.1

有什么建议吗?

最佳答案

假设dfdf2有相同的形状,你可以试试combine;并使用 lambda 函数进行自定义计算,在这里您可以用 df2(或 y)中的值填充 df(或 x)中的缺失值,然后执行 groupby.cumsum 按 NA block 计算值;

df2.columns = df.columns

df.combine(df2, lambda x, y: x.fillna(y).groupby(x.notnull().cumsum()).cumsum())

# COL1 COL2
#0 15.0 7.2
#1 18.0 3.5
#2 23.0 -0.3
#3 24.0 0.1

关于python - Pandas - 当 nan 时,从另一个数据框中添加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42892051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com