python - 如何修复在两列中查找相同日期并根据相同日期连接两个数据框的行
问题描述
我正在尝试组合两个数据框,我在 df1 中有 date 列,在 df2 中有 date1 列。我想将 df1 列日期的第一个值与 df2 date1 列的所有值进行比较,如果在 date2 中找到相似值只是将 df2 的相似值行与 df1 日期的第一行结合起来。然后对 df1 日期列的第二个值执行相同操作,依此类推....如果发现值不止一次,则添加多个行
我已经尝试过 for 循环和 if 条件,但我得到了非常奇怪的结果,许多行带有 NAN 和数据帧行增加
all_df=pd.DataFrame()
df1=pd.read_csv('.csv')
df2=pd.read_csv('.csv')
for i in range(len(df1)):
for j in range(len(df2)):
if df1['date1'].iloc[i] == df2['date'].iloc[j]:
print('yes')
df=pd.concat([df1.iloc[[i]],df2.iloc[[j]]],axis=1)
all_df=all_df.append(df)
else:
print('no')
我只想要 df1 date 和 df2 date2 相同的行。
解决方案
https://pandas.pydata.org/pandas-docs/stable/merging.html#database-style-dataframe-joining-merging
import pandas as pd
all_df = pd.merge(df1, df2, left_on='date1', right_on='date')
推荐阅读
- web-services - 用于垃圾邮件检测的 Web 服务/Web 邮件网络逻辑
- c# - 防止 SQL 注入 - CREATE 序列命令
- weblate - 为什么压缩提交的插件不起作用
- c++ - 如何在 QT5 按钮类中使用“成员函数模板”?
- r - 为什么我的“工作脚本”中的前两个计算数据点为零?
- c# - umbraco 中的 URL 重定向,当找不到文档时,重定向到别处
- java - 复杂的 json 到 java jackson
- azure - Azure databricks 相关虚拟网络
- c++ - 尝试在 R 中使用 boost c++ 库时出错
- php - PHP 无法使用 Edge 和 Windows 身份验证在 IIS 中写入文件