我正在將文本文件導入到熊貓中,並且想要連接文件中的3列以創建索引。連接列作爲熊貓中的索引
我打算在1個或多個步驟中完成此操作。我可以在創建DataFrame的同時執行轉換,也可以創建DataFrame並使用新創建的列對其進行重構。知道如何做到這一點對我來說都是最有幫助的。
我最終希望將索引作爲連接前3列中的值的值。
我正在將文本文件導入到熊貓中,並且想要連接文件中的3列以創建索引。連接列作爲熊貓中的索引
我打算在1個或多個步驟中完成此操作。我可以在創建DataFrame的同時執行轉換,也可以創建DataFrame並使用新創建的列對其進行重構。知道如何做到這一點對我來說都是最有幫助的。
我最終希望將索引作爲連接前3列中的值的值。
如果列包含字符串,你可以只使用+
操作(除了在字符串的情況下是將它們串聯在Python,和熊貓遵循以下):
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
然後,如果創建此列,你可以使用更改索引
In [6]: df = df.set_index('concatenated')
In [7]: df
Out[7]:
month year
concatenated
201201 01 2012
201202 02 2012
請注意,pd.concat
不是'concat'enate字符串,而是串聯/數據幀,以便將不同數據框或系列的列或行一起添加到一個數據框(而不是將幾行/列添加到一行/列中)。請參閱http://pandas.pydata.org/pandas-docs/dev/merging.html以獲得對此的廣泛解釋。
如果您使用read_csv
來導入您的文本文件,則有一個index_col
參數,您可以從pass a list of column names or numbers到。這將最終創建MultiIndex
- 我不確定是否適合您的應用程序。
如果你想明確地連接你的索引(假設它們是字符串),看起來你可以使用+
運算符。 (警告,未經測試的提前代碼)
df['concatenated'] = df['year'] + df['month']
df.set_index('concatenated')
「連接值」是什麼意思?它是你想要連接的字符串嗎?或者你想要一個多索引? – joris
多索引不起作用。我只是想連接3個字符串。每個人都在一個單獨的DataFrame字段中。 – DJElbow
它會幫助您發佈數據(或至少其中的一部分)和您的代碼到目前爲止 – Jeff