我正在将文本文件导入pandas,并希望连接文件中的3个列以生成索引.
我愿意在一个或多个步骤中这样做.我可以在创建DataFrame的同时进行转换,或者我可以创建DataFrame并使用新创建的列重新构建它.知道如何以这两种方式做到这一点对我来说是最有帮助的.
我最终希望索引是连接前3列中的值的值.
解决方法
如果你的列由字符串组成,你可以只使用运算符(在字符串的上下文中添加它们是在
python中连接它们,pandas遵循这个):
In [1]: import pandas as pd In [2]: df = pd.DataFrame({'year':['2012','2012'],'month':['01','02']}) In [3]: df Out[3]: month year 0 01 2012 1 02 2012 In [4]: df['concatenated'] = df['year'] + df['month'] In [5]: df Out[5]: month year concatenated 0 01 2012 201201 1 02 2012 201202
然后,如果创建了此列,则可以使用set_index来更改索引
In [6]: df = df.set_index('concatenated') In [7]: df Out[7]: month year concatenated 201201 01 2012 201202 02 2012
请注意,pd.concat不是为了连接字符串而是连接系列/数据帧,因此要将不同数据帧或系列的列或行一起添加到一个数据帧中(而不是将几行/列添加到一行/列中).有关详细说明,请参见http://pandas.pydata.org/pandas-docs/dev/merging.html.