【发布时间】:2020-05-23 23:20:51
【问题描述】:
根据数据框中另一列的值从列表中为数据框列分配值
我有两个数据框,df1 和 df2,其中
df1 = pd.DataFrame(np.array([['a', 'b', 'c','d'], [1, 2, 3, 4]]),
columns=['x', 'y'])
df2 = pd.DataFrame(np.array([['a', 'b', 'c', 'a', 'c', 'b','b'], [4, 5, 6, 1, 32, 1, 8]]),
columns=['x', 'z'])
我想基于 df2 创建一个数据帧 df3,并分配适当的 df1['y'] 值。因此,例如,我希望结果如下所示:
df3 = pd.DataFrame(np.array([['a', 'b', 'c', 'a', 'c', 'b','b'], [4, 5, 6, 1, 32, 1, 8] , [1, 2, 3, 1, 3, 2, 2 ] ]),
columns=['x', 'z', 'y'])
在我的实际情况中,x 有数千个可能的值,所以我想尽可能避免使用if df3['x'] == a: df3['y'] = 1 样式的解决方案。
【问题讨论】:
-
到底是什么问题?你有没有尝试过什么,做过什么研究?