python - 没有公共列时如何使用 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])
我得到以下结果:
但这是我所期待的:
任何帮助表示赞赏。
解决方案
老实说,我不清楚为什么要将单行数据存储在 CSV 文件中。我在几个假设下给出这个答案:
- 您无法控制数据的存储方式。
- 如上所述,第二个 CSV 中只会有 1 行数据。
鉴于这些假设,pd.concat
它并不是真正适合这项工作的工具。如果df2
总是只有一行,最好使用简单的赋值而不是尝试连接。
如果你有一个单行的单列,这将起作用:
df1['Dept'] = df2['Dept'].iloc[0]
如果您有多个列但只有一行,则可以在循环中执行此操作:
for column in df2.columns:
df1[column] = df2[column].iloc[0]
推荐阅读
- debugging - LLDB:用户定义别名后的制表符完成?
- vue.js - CopyWebpackPlugin 在运行开发服务器时不复制文件
- apache-kafka - 如果一个 kafka 代理出现故障,Springboot kafka 流应用程序失败
- ruby-on-rails - 如何在给定的上下文中表示对象属性?
- kotlin - Kotlin - 应用程序项目模板 - 找不到错误主类
- office365 - BizTalk Server TMS - 字符串未被识别为有效的 DateTime
- r - 如何提取R中对称矩阵的上三角形,不包括对角线值(全为0)
- solidity - 我从这段特定的代码中收到此错误消息
- python - utf-8 编码在 iPython 控制台中工作,而不是在 Spyder 编辑器中
- elasticsearch - 我想通过logstash将MySQL中的数据同步到ElasticSearch,如何指定字段使用的分析器?