在特定条件下使用pandas将数据框中的一些数据替换为另一个数据框



我每个人,我很新的熊猫数据集,但是,所以我不会附加代码,如果不是伪代码,因为我不知道如何实现这个。

我有两个dataframe,一个有一个作业号和一个与之相关的日期(我们称之为DF2),另一个有一堆不同的数据(这将是DF1)。

我想比较DF1和DF2,如果DF1[jobNo. cn]中的字符串。[jobNo.]等于DF2中的字符串。get DF1[日期]== DF2[日期].

任何想法?我真的需要你的帮助。

感谢

如果您试图检查jobNo匹配时日期是否匹配,我的方法是合并jobNo上的两个数据帧并比较日期。

import pandas as pd
df1 = pd.DataFrame({'jobNo': [0, 3, 1], 'date': [9, 8, 3]})
df2 = pd.DataFrame({'jobNo': [0, 3, 2], 'date': [9, 5, 3]})
df3 = df2.merge(df1, on=["jobNo"], suffixes=('_2', '_1'))
df3["date_match"] = df3.apply(lambda x: x["date_2"] == x["date_1"], axis=1)
print(df3)

jobNo  date_2  date_1  date_match
0      0       9       9        True
1      3       5       8       False

如果您所说的df1["date"]==df2["date"]是指如果df1中有匹配,我们将更改日期那么这段代码将查找匹配并使用apply

替换日期
import pandas as pd
df1 = pd.DataFrame({'jobNo': [0, 3, 1], 'date': [9, 8, 3]})
df2 = pd.DataFrame({'jobNo': [0, 3, 2], 'date': [7, 5, 4]})
df1['new_date'] = df1.apply(lambda x: (x['date'] if x['jobNo']
not in df2['jobNo'
].values else df2[df2['jobNo'] == x['jobNo'
]]['date'].values[0]), axis=1)
print(df1)

jobNo  date  new_date
0      0     9         7
1      3     8         5
2      1     3         3

相关内容

  • 没有找到相关文章

最新更新