首页 > 解决方案 > 没有公共列时如何使用 Pandas 连接两个 CSV 文件

问题描述

我有 2 个 CSV 文件。

df1 = pd.DataFrame({'Employee': ['ABC', 'XYZ', 'DEF', 'KLM'], 
                   'Age': [25, 32, 38, 40]})

  Employee  Age
0      ABC   25
1      XYZ   32
2      DEF   38
3      KLM   40

df2 = pd.DataFrame({'Dept': ['IT']})

  Dept
0   IT

当我尝试使用以下代码使用 pandas 进行 concat 时,

df1=pd.read_csv("file_A")

df2=pd.read_csv("file_B")

pd.concat([df2,df1])

我得到以下结果:

在此处输入图像描述

但这是我所期待的:

在此处输入图像描述

任何帮助表示赞赏。

标签: pythonpandas

解决方案


老实说,我不清楚为什么要将单行数据存储在 CSV 文件中。我在几个假设下给出这个答案:

  1. 您无法控制数据的存储方式。
  2. 如上所述,第二个 CSV 中只会有 1 行数据。

鉴于这些假设,pd.concat它并不是真正适合这项工作的工具。如果df2总是只有一行,最好使用简单的赋值而不是尝试连接。

如果你有一个单行的单列,这将起作用:

df1['Dept'] = df2['Dept'].iloc[0]

如果您有多个列但只有一行,则可以在循环中执行此操作:

for column in df2.columns:
    df1[column] = df2[column].iloc[0]

推荐阅读