python - 如何连接具有不同长度(和 samo 列)的数据帧?
问题描述
我正在尝试将多个熊猫数据框相互堆叠。它们有不同的长度,但都有 7 列。我想将它们粘贴在彼此下方(在axis = 0上连接)。所以结果应该是各个长度的总和乘以 7. (x, 7)。
要连接,我使用:
import pandas as pd
import numpy as np
df_1 = pd.DataFrame(np.random.randint(0,100,size=(100, 7))
df_2 = pd.DataFrame(np.random.randint(0,100,size=(150, 7))
df_3 = pd.DataFrame(np.random.randint(0,100,size=(90, 7))
df_4 = pd.DataFrame(np.random.randint(0,100,size=(1001, 7))
df_5 = pd.DataFrame(np.random.randint(0,100,size=(1050, 7))
df_6 = pd.DataFrame(np.random.randint(0,100,size=(780, 7))
df_7 = pd.DataFrame(np.random.randint(0,100,size=(80, 7))
series = [df_1, df_2, df_3, df_4, df_5, df_6, df_7]
total = pd.concat(series, axis=0)
print(total.shape)
结果是 (3251, 15),但期望的结果是 (3251, 7)。
我应该怎么做才能到达那里?
请注意,我没有具体标识 Dataframe 中的索引或列。也许解决方案就在那里,但我不确定如何使用这些属性。
解决方案
运行您的代码,它工作正常:
import pandas as pd
import numpy as np
df_1 = pd.DataFrame(np.random.randint(0,100,size=(100, 7)))
df_2 = pd.DataFrame(np.random.randint(0,100,size=(150, 7)))
df_3 = pd.DataFrame(np.random.randint(0,100,size=(90, 7)))
df_4 = pd.DataFrame(np.random.randint(0,100,size=(1001, 7)))
df_5 = pd.DataFrame(np.random.randint(0,100,size=(1050, 7)))
df_6 = pd.DataFrame(np.random.randint(0,100,size=(780, 7)))
df_7 = pd.DataFrame(np.random.randint(0,100,size=(80, 7)))
series = [df_1, df_2, df_3, df_4, df_5, df_6, df_7]
total = pd.concat(series, axis=0)
print(total)
0 1 2 3 4 5 6
0 38 73 6 64 54 20 52
1 41 28 9 14 40 24 17
2 31 53 5 84 53 4 81
3 65 2 87 38 53 62 58
4 57 34 9 50 56 22 81
.. .. .. .. .. .. .. ..
75 1 63 71 71 76 3 95
76 87 47 33 43 79 99 73
77 12 58 11 93 5 35 18
78 16 41 44 15 79 74 73
79 76 54 34 83 35 22 50
[3251 rows x 7 columns]
推荐阅读
- javascript - 无法更改 react-js 中的下拉元素颜色
- python - 如何使用python在csv中的特定列中逐行添加一些文本
- opencv - HoughLinesP:线条没有到达边界
- python - Hstack数组函数,未知回溯错误
- javascript - 在组件属性中使用 React.forwardRef 内联是否有效?
- javascript - Javascript页面刷新并保留参数
- c# - 通过其 SVG 对应物生成的光栅图像中存在意想不到的视觉元素
- docker - Windows 容器上的 Docker 容器 ID
- sql-server - 无直接连接的 SSAS 表格动态行级安全性
- python-3.x - Tkinter - 枕头库 - 打开图像时 TypeError 'dict' 对象不可调用