python - 如何组合具有一组公共列值的多个数据框值?
问题描述
我有一个df1
由字符串值组成的数据框ColA
,这些ColA
值将有重复项,如图所示。
现在我df2
将在 中具有相同的值集,ColA
不再重复。所以我想将 的ColD
值附加df2
到我原来的df1
. (60 将重复应用程序两次,20 将重复三次..等等..)。同样,我想将ColE
值附加df3
到我的df1
是否可以通过转置来完成,ColA
使其成为列名,然后我们可以对其附加值,或者可以将ColA
其设置为索引,然后我们需要附加值,还是有其他方法?
import numpy as np
import pandas as pd
import io
data1='''
ColA,ColB,ColC
app,5,2
app,6,3
book,10,6
book,4,8
book,9,0
car,7,8
car,1,3
'''
data2='''
ColA,ColD
app,60
book,20
car,8
'''
data3='''
ColA,ColE
app,3
book,6
car,9
'''
df1=pd.read_csv(io.StringIO(data1))
df2=pd.read_csv(io.StringIO(data2))
df3=pd.read_csv(io.StringIO(data3))
预期输出:df1
ColA ColB ColC ColD ColE
app 5 2 60 3
app 6 3 60 3
book 10 6 20 6
book 4 8 20 6
book 9 0 20 6
car 7 8 8 9
car 1 3 8 9
解决方案
你可以merge
:
df1.merge(df2, on='ColA', how='left').merge(df3, on='ColA', how='left')
输出:
ColA ColB ColC ColD ColE
0 app 5 2 60 3
1 app 6 3 60 3
2 book 10 6 20 6
3 book 4 8 20 6
4 book 9 0 20 6
5 car 7 8 8 9
6 car 1 3 8 9
推荐阅读
- java - 将数据从活动发送到片段?
- kubernetes-helm - 从图表中查找 repo
- python - 我想知道我的功能是否准确。"sort_by_order 函数"
- android-studio - 如何在 Android Studio Logcat 中查找字符串,而不是 Filter
- java - 拦截对测试方法的方法调用或控制在方法中创建的对象
- reactjs - 对渲染道具做出反应 - 组件不会在道具更改时更新
- php - 将行写入 .csv 或 .txt 文件 php 的限制
- python - python中是否有可以从当前日期/给定日期生成日期4周的函数?
- android - OnActivityResult Kotlin
- sql - SQL 选择列值作为自定义名称