系统:Windows 7 语言版本:Anaconda3-4.3.0.1-Windows-x86_64 编辑器:pycharm-community-2016.3.2
Part 1:示例
df_1
,有3列["time", "pos", "value1"]
df_2
,有3列["pos", "value2", "value3"]
pos列
作为连接,将两个Df
合并成一个Df
,效果如下图合并
Part 2:代码
import pandas as pd
dict_1 = {"time": ["2019-11-2", "2019-11-2", "2019-11-2"], "pos": ["P1", "P2", "P3"], "value1": [0.5, 0.8, 1.0]}
df_1 = pd.DataFrame(dict_1, columns=["time", "pos", "value1"])
dict_2 = {"pos": ["P1", "P2", "P3", "P4"], "value2": [-1, -2, -3, -4], "value3": [1, 2, 3, 4]}
df_2 = pd.DataFrame(dict_2, columns=["pos", "value2", "value3"])
print("\ndf_1")print(df_1)
print("\ndf_2")print(df_2)
df_merge_1 = pd.merge(df_1, df_2, how='left', on='pos')print("\ndf_merge_1")print(df_merge_1)
df_merge_2 = pd.merge(df_2, df_1, how='left', on='pos')print("\ndf_merge_2")print(df_merge_2)
代码截图
Part 3:部分代码解读
pd.merge(df_1, df_2, how='left', on='pos')
,以pos
列作为df_1和df_2的关联列,采用左连接的方式df_1
作为基准,在示例中发现df_merge_1
没有P4点df_merge_2
中time
及value1
没有数据