gpt4 book ai didi

python - 如何根据一列从 2 个数据帧中获取不匹配的数据。 ( Pandas )

转载 作者:太空宇宙 更新时间:2023-11-03 15:05:58 27 4
gpt4 key购买 nike

我有 2 个数据帧示例输出在这里 first Dataframe Second dataframe我用于获取这些内容并格式化日期列的代码位于此处

第一个 df:

csv_data_df = pd.read_csv(os.path.join(path_to_data+'\\Data\\',appendfile))
csv_data_df['Date_Formatted'] = pd.to_datetime(csv_data_df['DATE']).dt.strftime('%Y-%m-%d')
csv_data_df.head(3)

第二个 df:

new_Data_df = pd.read_csv(io.StringIO(response.decode('utf-8')))
new_Data_df['Date_Formatted'] =
pd.to_datetime(new_Data_df['DATE']).dt.strftime('%Y-%m-%d')
new_Data_df.head(3)`

我想构造第三个数据帧,其中只有第二个数据帧中日期不匹配的行需要进入第三个数据帧。有没有什么方法可以做到这一点。您可以在屏幕截图中看到日期格式的列。

最佳答案

您可以将两个数据帧的索引设置为所需的连接列,然后使用df1.combine_first(df2) 。对于此处的具体示例,可能类似于以下行。

csv_data_df.set_index('Date_Formatted').combine_first(new_Data_df.set_index('Date_Formatted')).reset_index()

例如:

df = pd.DataFrame(np.random.randn(5, 3), columns=list('abc'), index=list(range(1, 6)))

df2 = pd.DataFrame(np.random.randn(8, 3), columns=list('abc'))

df
Out[10]:
a b c
1 -1.357517 -0.925239 0.974483
2 0.362472 -1.881582 1.263237
3 0.785508 0.227835 -0.604377
4 -0.386585 -0.511583 3.080297
5 0.660516 -1.393421 1.363900

df2
Out[11]:
a b c
0 1.732251 -1.977803 0.720292
1 0.048229 1.125277 1.016083
2 -1.684013 2.136061 0.553824
3 -0.022957 1.237249 0.236923
4 -0.998079 1.714126 1.291391
5 0.955464 -0.049673 1.629146
6 0.865864 1.137120 1.117207
7 -0.126944 1.003784 -0.180811

df.combine_first(df2)
Out[13]:
a b c
0 1.732251 -1.977803 0.720292
1 -1.357517 -0.925239 0.974483
2 0.362472 -1.881582 1.263237
3 0.785508 0.227835 -0.604377
4 -0.386585 -0.511583 3.080297
5 0.660516 -1.393421 1.363900
6 0.865864 1.137120 1.117207
7 -0.126944 1.003784 -0.180811

关于python - 如何根据一列从 2 个数据帧中获取不匹配的数据。 ( Pandas ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44663738/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com