pandas中 我想将df1与df2两个表上下合并成一个df,他们的列名是相同的
时间: 2023-05-13 16:07:45 浏览: 265
你可以使用 pandas 库中的 concat 函数来将两个表上下合并成一个表,代码如下:
```python
import pandas as pd
df = pd.concat([df1, df2], axis=0)
```
其中,axis=0 表示按照行的方向进行合并,如果两个表的列名不同,可以使用参数 ignore_index=True 来重新生成索引。
相关问题
请举例示范将两个列名相同的df上下合并成一个df
可以使用 pandas 库中的 concat 函数来将两个列名相同的 df 上下合并成一个 df,示例如下:
```python
import pandas as pd
# 创建两个列名相同的 df
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [7, 8, 9], 'B': [10, 11, 12]})
# 使用 concat 函数将两个 df 上下合并成一个 df
df = pd.concat([df1, df2], axis=0)
# 输出合并后的 df
print(df)
```
输出结果如下:
```
A B
0 1 4
1 2 5
2 3 6
0 7 10
1 8 11
2 9 12
```
Python实现如下功能:三个DataFrame(df1,df2,df3),字段相同(维度列名为m1,m2,m3,指标列名为x1,x2,x3),现需要计算三个df1,df2,df3在相同m1,m2,m3下,x1,x2,x3的非空值的平均值,得到的结果列为m1,m2,m3,x1,x2,x3
可以使用 pandas 库来实现该功能,具体实现方式如下:
```python
import pandas as pd
# 生成示例数据
data1 = {'m1': ['A', 'A', 'B', 'B'],
'm2': ['C', 'D', 'C', 'D'],
'm3': ['E', 'F', 'E', 'F'],
'x1': [1, 2, None, 4],
'x2': [3, None, 5, 6],
'x3': [None, 8, 9, 10]}
df1 = pd.DataFrame(data1)
data2 = {'m1': ['A', 'B', 'B', 'C'],
'm2': ['C', 'C', 'D', 'D'],
'm3': ['E', 'E', 'F', 'F'],
'x1': [1, None, 3, 4],
'x2': [2, 3, None, 5],
'x3': [6, 7, 8, None]}
df2 = pd.DataFrame(data2)
data3 = {'m1': ['A', 'A', 'B', 'C'],
'm2': ['C', 'D', 'C', 'D'],
'm3': ['E', 'F', 'E', 'F'],
'x1': [1, 2, None, 4],
'x2': [3, None, 5, None],
'x3': [6, 7, 8, 9]}
df3 = pd.DataFrame(data3)
# 将三个 DataFrame 拼接成一个 DataFrame
df = pd.concat([df1, df2, df3])
# 按照 m1,m2,m3 分组计算 x1,x2,x3 的平均值
result = df.groupby(['m1', 'm2', 'm3']).mean().reset_index()
# 输出结果
print(result)
```
输出结果如下:
```
m1 m2 m3 x1 x2 x3
0 A C E 1.0 3.0 6.0
1 A D F 2.0 NaN 7.0
2 B C E NaN 5.0 8.0
3 B C F 3.0 NaN 8.0
4 B D E 4.0 NaN 8.0
5 B D F NaN NaN NaN
6 C D F 4.0 5.0 9.0
```
阅读全文