python - 用python合并两个数据框

标签 python pandas merge

我有两个数据框:dfDepas 和 df7;

dfDepas.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 7 entries, 0 to 6
Data columns (total 4 columns):
day_of_week    7 non-null object
P_ACT_KW       7 non-null float64
P_SOUSCR       7 non-null float64
depassement    7 non-null float64
dtypes: float64(3), object(1)
memory usage: 280.0+ bytes


df7.info()
<class 'pandas.core.frame.DataFrame'>
Index: 7 entries, Fri to Thurs
Data columns (total 6 columns):
ACT_TIME_AERATEUR_1_F1    7 non-null float64
ACT_TIME_AERATEUR_1_F3    7 non-null float64
ACT_TIME_AERATEUR_1_F5    7 non-null float64
ACT_TIME_AERATEUR_1_F6    7 non-null float64
ACT_TIME_AERATEUR_1_F7    7 non-null float64
ACT_TIME_AERATEUR_1_F8    7 non-null float64
dtypes: float64(6)
memory usage: 392.0+ bytes

我尝试根据 ['day_of_week'] 合并这两个数据帧,这是 dfDepas 数据帧中的索引。 我不知道如何使用它:merged_df = pd.merge(dfDepas, df7, how='inner',on=['day_of_week'])

有什么想法可以帮助我吗? 谢谢

亲切的问候

编辑

dfDepas
day_of_week P_ACT_KW P_SOUSCR depassement 
Fri 157.258929 427.142857 0.0 
Mon 157.788110 426.875000 0.0 
Sat 166.989236 426.875000 0.0 
Sun 149.676215 426.875000 0.0 
Thurs 157.339286 427.142857 0.0 
Tues 151.122913 427.016021 0.0 
Weds 159.569444 427.142857 0.0


df7

ACT_TIME_AERATEUR_1_F1 ACT_TIME_AERATEUR_1_F3 ACT_TIME_AERATEUR_1_F5 ACT_TIME_AERATEUR_1_F6 ACT_TIME_AERATEUR_1_F7 ACT_TIME_AERATEUR_1_F8

Fri 0.326258 0.330253 0.791144 0.654682 3.204544 1.008550 
Sat -0.201327 -0.228196 0.044616 0.184003 -0.579214 0.292886 
Sun 5.068735 5.250199 5.407271 5.546657 7.823564 5.786713 
Mon -0.587129 -0.559986 -0.294890 -0.155503 2.013379 -0.131496 
Tues-1.244922 -1.510025 -0.788717 -1.098790 -0.996845 -0.718881 
Weds-3.264598 -3.391776 -3.188409 -3.041306 -4.846189 -4.668533 
Thurs -0.178179 0.011002 -1.907544 -2.084516 -6.119337 

最佳答案

您可以使用 reset_index并将列 0 重命名为 day_of_week 以进行匹配:

merged_df = pd.merge(dfDepas, 
                     df7.reset_index().rename(columns={0:'day_of_week'}),
                     on=['day_of_week'])

谢谢Quickbeam2k1另一种解决方案:

merged_df = pd.merge(dfDepas.set_index('day_of_week'), 
                     df7,
                     right_index=True,
                     left_index =True)

关于python - 用python合并两个数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39032204/

相关文章:

git - git如何比较文件?

python - plt.tight_layout() 与 sns.clustermap

python - 如何在 PythonanyWhere 控制台上编辑代码?

python - 使用字典插入或更新

Git:为什么 rebase 会导致冲突而 merge 不会?

javascript - 可以合并或嵌套 ES6 导入吗?

python - 定位没有绝对路径的python脚本

Python pandas 通过对现有列进行分组来创建额外的数据框列

python - Pandas 中的多重聚合计数

python - 使用 s.loc 和 s.first_valid_index() 时出现 KeyError