好吧,我真正的问题比这更大,但我有一个简单的工作示例。
>>> import pandas as pd
>>> import numpy as np
>>> a = pd.DataFrame(np.array([[2, 1990], [4,1991], [5,1992]]), \
... index=[1,2,3], columns=['var', 'yr'])
>>> a
var yr
1 2 1990
2 4 1991
3 5 1992
>>> b = pd.DataFrame(index=a.index, columns=['new_var'])
>>> b
new_var
1 NaN
2 NaN
3 NaN
>>> b[a.yr<1992].loc[:, 'new_var'] = a[a.yr<1992].loc[:, 'var']
>>> b
new_var
1 NaN
2 NaN
3 NaN
我想要以下输出:
>>> b
new_var
1 2
2 4
3 NaN
最佳答案
有了过滤的东西,你正在创建一个切片的副本,因此它不会分配。
改为这样做:
b.loc[a.yr<1992, 'new_var'] = a['var']
关于python - 将 DataFrame 中的值插入另一个 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41880184/