2014-12-07 60 views
0

我尋找大熊貓的子功能:由於一系列的位置,我想從每行i選擇子[0:pos_i]熊貓:分裂文成兩個部分長度不等

>>> text = pd.Series(['123456789', '987654321']) 
0 123456789 
1 987654321 
dtype: object 

>>> pos = pd.Series([3,6]) 
0 3 
1 6 
dtype: int64 

輸出應是:

>>> pd.Series(['123', '987654']) 
0 123 
1 987654 
dtype: object 

更妙的是分裂成兩列的數據幀:

>>> pd.DataFrame([['123', '456789'], ['987654', '321']]) 
     0  1 
0  123 456789 
1 987654  321 
+0

沒有我的回答解決你的問題嗎? – 2014-12-22 12:50:51

回答

1

分裂的簡單情況到只有2件:

tokens = [] 
for i, row in text.iteritems(): 
    tokens.append((row[:pos[i]], row[pos[i]:])) 

df = pd.DataFrame(tokens) 

或寫入列表理解:

df = pd.DataFrame([(row[:pos[i]], row[pos[i]:]) for i, row in text.iteritems()]) 

給出:

>>> df 
     0  1 
0  123 456789 
1 987654  321 

[2 rows x 2 columns]