将列连接为Pandas中的索引

DJE*_*bow 8 python pandas

我正在将文本文件导入pandas,并希望连接文件中的3个列以生成索引.

我愿意在一个或多个步骤中这样做.我可以在创建DataFrame的同时进行转换,或者我可以创建DataFrame并使用新创建的列重新构建它.知道如何以这两种方式做到这一点对我来说是最有帮助的.

我最终希望索引是连接前3列中的值的值.

jor*_*ris 12

如果你的列由字符串组成,你可以只使用+运算符(在字符串的上下文中添加它们是在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
Run Code Online (Sandbox Code Playgroud)

然后,如果创建了此列,则可以使用set_index更改索引

In [6]: df = df.set_index('concatenated')

In [7]: df
Out[7]:
             month  year
concatenated
201201          01  2012
201202          02  2012
Run Code Online (Sandbox Code Playgroud)

请注意,pd.concat不是"连接"字符串而是连接系列/数据帧,因此要将不同数据帧或系列的列或行一起添加到一个数据帧中(而不是将几行/列添加到一行/列中).有关详细说明,请参见http://pandas.pydata.org/pandas-docs/dev/merging.html.