我有3个CSV文件.每个都有第一列作为人的(字符串)名称,而每个数据框中的所有其他列都是该人的属性.
如何将所有三个CSV文档“连接”在一起以创建单个CSV,每行具有该人员字符串名称的每个唯一值的所有属性?
pandas中的join()函数指定我需要一个多索引,但我对层次索引方案与基于单个索引的连接有什么关系感到困惑.
解决方法:
假定进口:
import pandas as pd
John Galt’s answer基本上是一种减少操作.如果我有一些以上的数据帧,我会将它们放在这样的列表中(通过列表推导或循环或诸如此类生成):
dfs = [df0, df1, df2, dfN]
假设他们有一些共同的列,例如你的例子中的名字,我会做以下事情:
df_final = reduce(lambda left,right: pd.merge(left,right,on='name'), dfs)
这样,您的代码应该与您要合并的任意数量的数据帧一起使用.
编辑2016年8月1日:对于那些使用Python 3的人:reduce已被移入functools.因此,要使用此功能,您首先需要导入该模块:
from functools import reduce
标签:python,pandas,join,merge 来源: https://codeday.me/bug/20190915/1804834.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。