python—从另一个 Dataframe 的列中获取单个值创建新列

kd3sttzy  于 2021-08-20  发布在  Java
关注(0)|答案(2)|浏览(204)

我有两个 Dataframe 。第一个是 df1 = pd.DataFrame({'A': [5, 0], 'B': [2, 4]})

A   B
0   5   2
1   0   4

另一个是 df2 = pd.DataFrame({'C': [1, 1], 'D': [3, 3]})

C   D
0   1   3
1   1   3

我只想从df1中获取4个,并在df2中创建新列。我试过这个 df2['E']=df1['B'][df1['B']==4] 得到

C   D    E
0   1   3   NaN
1   1   3   4.0

我希望df2的两行都是4。如何实现这一点?任何帮助都是巨大的帮助。

8oomwypt

8oomwypt1#

如果值“4”显示为列中的最后一个值(如示例),则可以执行以下操作:

df2['E'].fillna(method= 'backfill')

有关其他方法,请参见此处:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.dataframe.fillna.html

uinbv5nw

uinbv5nw2#

实际上不清楚您想在这里完成什么,但我假设您想检查df1(b列)中是否有任何“4”,然后用“4”填充df2(e列)中的所有行。然后你可以做:

import numpy as np

df2['E'] = np.where(df1['B'].isin([4]).any(), 4, np.nan)

输出:

C   D     E
0   1   3   4.0
1   1   3   4.0

相关问题