我想合并2个数据框。但是,它有一个问题。如果1个表的值必须复制到另一个表,如何合并2个表。
我已经尝试过了,pandas.concat和pandas.merge。
df1={'id':[1]}
df2={'Brand':['volvo','audi'],
'Price':[20,000,30,000]}
pd.concat([df1],[df2])
我希望表格显示如下:
id Brand Price
1 volvo 20,000
1 audi 30,000
这意味着ID 1拥有两辆车。
答案 0 :(得分:0)
如果有多个值,则必须决定如何合并。如果只有1,则可以简单地分配:
df1['key'] = 1
df2['key'] = 1
对临时键执行合并,然后放下临时键:
df1.merge(df2).drop(columns=['key'])
输出:
id Brand Price
0 1 volvo 20000
1 1 audi 30000
但是您正在执行笛卡尔积,因此,如果df1 e.g: [1,2]
中存在多个值,则会有更多重复数据:
id Brand Price
0 1 volvo 20000
1 1 audi 30000
2 2 volvo 20000
3 2 audi 30000
答案 1 :(得分:0)
这是我当前的解决方案:
df1={'id':[1]}
df2 = {'Brand':['Volvo','Heizen','Eizen'],
'Price':[20000,30000,40000]}
person=pd.DataFrame(df1)
car=pd.DataFrame(df2)
id=person.loc[0].id
car.insert(0,"id",id)
print(car)
这是我的输出:
id Brand Price
0 1 Volvo 20000
1 1 Heizen 30000
2 1 Eizen 40000
它可以得到我期望的表。但这有更好的解决方案吗?
答案 2 :(得分:-1)
df1和df2不是熊猫数据帧。
data1={'id':[1]}
data2={'Brand':['volvo','audi'],'Price':[20000,30000]}
df1 = pd.DataFrame(data1) #creating dataframes
df2 = pd.DataFrame(data2)
frames = [df1,df2]
并串联
pd.concat(frames, sort=False)
收益
id Brand Price
0 1.0 NaN NaN
0 NaN volvo 20000.0
1 NaN audi 30000.0