不同索引的concat数据帧

2024-05-19 16:26:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试添加两个csv文件并转换为csv。你知道吗

你知道吗第一.csv你知道吗

 index val1 val2 val3
    0      19    29  30
    1      29    54  30
    2      87    98  90

你知道吗秒.csv你知道吗

val4 val5 val6
19    29  30
29    54  30
87    98  90

当我试图并排添加这两个csv时,第二个csv的列一直空到第一个csv行,并且只有concated。 结果如下:

index val1 val2 val3   val4 val5 val6
0      19    29  30
1      29    54  30
2      87    98  90

3                       19    29  30
4                       29    54  30
5                       87    98  90

预期结果:

index val1 val2 val3   val4 val5 val6
0      19    29  30     19    29  30
1      29    54  30     29    54  30
2      87    98  90     87    98  90

我有df1和df2两个csv的数据帧。你知道吗

df3 = pd.concat([df1, df2], axis=1)
df3.to_csv('test1.csv',',',dtype='unicode8')

为什么我会有这个问题。 请帮忙解决这个问题谢谢, 圣达


Tags: 文件csv数据indexpddf1df2val1
2条回答

使用df2.reset_index(drop=True, inplace=True),照常进行。你知道吗

示例:

df1 = pd.DataFrame([[1, 2, 3],
                   [4, 5, 6],
                   [7, 8, 9]], columns=['val1', 'val2', 'val3'])
df1


+ -+    +   +   +
|   |   val1 | val2 | val3 |
+ -+    +   +   +
| 0 |      1 |    2 |    3 |
| 1 |      4 |    5 |    6 |
| 2 |      7 |    8 |    9 |
+ -+    +   +   +

df2 = pd.DataFrame([[1, 2, 3],
                   [4, 5, 6],
                   [7, 8, 9]], columns=['val4', 'val5', 'val6'], index=[2, 9, 8])
df2


+  +   +   +   +
|    | val4 | val5 | val6 |
+  +   +   +   +
| 2 |    1 |    2 |    3 |
| 9 |    4 |    5 |    6 |
| 8 |    7 |    8 |    9 |
+  +   +   +   +

df2.reset_index(drop=True, inplace=True)
pd.concat([df1, df2], axis=1).to_csv('saveit.csv')


+ -+   -+   +   +   +   +   +
|   |  val1 | val2 | val3 | val4 | val5 | val6 |
+ -+   -+   +   +   +   +   +
| 0 |     1 |    2 |    3 |    1 |    2 |    3 |
| 1 |     4 |    5 |    6 |    4 |    5 |    6 |
| 2 |     7 |    8 |    9 |    7 |    8 |    9 |
+ -+   -+   +   +   +   +   +

通过执行以下操作创建数据帧:

复制以下内容:

val1 val2 val3
19    29  30
29    54  30
87    98  90
df1=pd.read_clipboard();

val4 val5 val6
19    29  30
29    54  30
87    98  90
df2=pd.read_clipboard();

你能试试下面的吗。你知道吗

import pandas as pd
pd.concat([df1,df2], axis=1)

输出如下。你知道吗

  val1  val2 val3  val4  val5  val6
0  19    29   30    19    29    30 
1  29    54   30    29    54    30 
2  87    98   90    87    98    90 

相关问题 更多 >