python pandas DataFrame如何把两个DataFrame合并,pd.merge_ordered(), 替换df数据df.replace() ,df.apply()

python pandas DataFrame如何把两个DataFrame合并,pd.merge_ordered()

复制代码
 1 import pandas as pd
 2 import numpy as np
 3 df1 = pd.DataFrame({
 4     'datetime':['2021-01-01','2021-01-02','2021-01-03','2021-01-10'],
 5     'v1':[1,0,0,1],
 6     'v2':[0,0,0,0],
 7     'v3':['a','b','c','d']
 8 })
 9 df2 = pd.DataFrame({
10     'datetime':['2021-01-01','2021-01-02','2021-01-11','2021-01-12'],
11     'v1':[1,1,0,0],
12     'v2':[1,0,1,0],
13     'v3':['e','e','e','e']
14 })
15 print(df1)
16 print(df2)
17  
18 df3 = pd.merge_ordered(df1,df2,on=['datetime'])#基于‘datetime’合并df1,df2
19 print(df3)
20 df3 = df3.replace(np.nan,0)#用0替换NAN
21 print(df3)
22 df3['v1'] = df3['v1_x'] + df3['v1_y'] 
23 df3['v2'] = df3['v2_x'] + df3['v2_y'] 
24 df3 = df3.replace(2,1)
25 df3['v3'] = df3.apply(lambda x: x['v3_y'] if x['v3_x'] == 0 else x['v3_x'],axis=1)#当df1['v3']没有值时,取df2['v3'],否则取df1['v3']
26 print(df3)
复制代码

运行结果:

 

posted @   司徒韵然  阅读(349)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示