gpt4 book ai didi

python - 防止 Pandas 在垂直和水平方向上连接我的数据框

转载 作者:太空宇宙 更新时间:2023-11-03 13:08:48 26 4
gpt4 key购买 nike

我正在尝试水平连接两个数据框。 df2df1 中的每个观察包含 2 个结果变量。

df1.shape 
(242583, 172)
df2.shape
(242583, 2)

我的代码是:

Fin = pd.concat([df1, df2], axis= 1)

但结果以某种方式堆叠在 2 个维度中:

Fin.shape
(485166, 174)

我在这里错过了什么?

最佳答案

有不同的索引值,所以索引不对齐,得到NaN:

df1 = pd.DataFrame({
'A': ['a','a','a'],
'B': range(3)
})
print (df1)
A B
0 a 0
1 a 1
2 a 2

df2 = pd.DataFrame({
'C': ['b','b','b'],
'D': range(4,7)
}, index=[5,7,8])
print (df2)
C D
5 b 4
7 b 5
8 b 6

Fin = pd.concat([df1, df2], axis= 1)
print (Fin)
A B C D
0 a 0.0 NaN NaN
1 a 1.0 NaN NaN
2 a 2.0 NaN NaN
5 NaN NaN b 4.0
7 NaN NaN b 5.0
8 NaN NaN b 6.0

一种可能的解决方案是创建默认索引:

Fin = pd.concat([df1.reset_index(drop=True), df2.reset_index(drop=True)], axis= 1)
print (Fin)
A B C D
0 a 0 b 4
1 a 1 b 5
2 a 2 b 6

或赋值:

df2.index = df1.index
Fin = pd.concat([df1, df2], axis= 1)
print (Fin)
A B C D
0 a 0 b 4
1 a 1 b 5
2 a 2 b 6

df1.index = df2.index
Fin = pd.concat([df1, df2], axis= 1)
print (Fin)
A B C D
5 a 0 b 4
7 a 1 b 5
8 a 2 b 6

关于python - 防止 Pandas 在垂直和水平方向上连接我的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49277682/

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