我是python新手,我正在尝试使用pandas(我可以使用vba,但需要相当长的时间)将2张excel表合并为1张(就像excel中的vlookup函数)。我有一个问题如下:
这是我的代码:
import pandas as pd
df1 = pd.DataFrame({'v_contract_number': ['VN120001438','VN120001439'],'maturity date': ['31/12/2021','31/12/2021']})
df2 = pd.DataFrame({'v_contract_number': ['VN120001438','VN120001439'], 'd_revised_maturity_date': ['31/12/2021',' ']})
print(df1)
# df1
v_contract_number maturity date
0 VN120001438 31/12/2021
1 VN120001439 31/12/2021
print(df2)
# df2
v_contract_number d_revised_maturity_date
0 VN120001438 31/12/2021
1 VN120001439
results = pd.merge(df1, df2, on=['v_contract_number'],how='left')
print(results)
# results
v_contract_number maturity date d_revised_maturity_date
0 VN120001438 31/12/2021 31/12/2021
1 VN120001439 31/12/2021
我想要的是,如果“d\u修订的\u到期日\u日期”为空,则为空=“到期日”
我的预期结果是:
v_contract_number maturity date d_revised_maturity_date
0 VN120001438 31/12/2021 31/12/2021
1 VN120001439 31/12/2021 31/12/2021
我可以使用iferror在excel中完成这项任务,但我不知道如何使用python。
谢谢并致以最良好的问候
5条答案
按热度按时间lawou6xi1#
合并后,可以使用
mask
:这将填满计算机的空插槽
d_revised_maturity_date
(发现与eq
性取向" "
)具有相应的值maturity date
专栏,得到
(如果您希望替换中的任何类型的空格
d_revised_maturity_date
列,您可以更改d_date.eq(" ")
高于其中包括完全空的字符串、一个或多个空格。)
z9ju0rcb2#
可以像这样使用.apply():
在您的特殊情况下:
sg24os4d3#
你可以用
fillna
用另一列填充na/nan值。vawmfj5a4#
np.where()的组合可用于您的优势。
7kqas0il5#
结果['d_修订的_到期日]]=结果['到期日]]。应用(λx:x如果x==无其他x)