2017-06-20 34 views
0
 1 
0 an  
1 df  
2 0  
3 sdg  
4 gd  
5 dg  
6 0  
7 dc  
8 0  
9 dcd  
10 ds  
11 1  
12 sdg 
13 ds 
14 1  
15 sd 
16 sg 
17 2  
18 dsg 
19 sdg 
20 dfg 
21 2  

我想問一下如何使用上面的數據幀來產生下面的數據幀,根據第一列來產生第二列。 (就像在Excel中填補,但很多時候)python數據幀填滿

 1 2 
0 an 0 
1 df 0 
2 0 0 
3 sdg 0 
4 gd 0 
5 dg 0 
6 0 0 
7 dc 0 
8 0 0 
9 dcd 1 
10 ds 1 
11 1 1 
12 sdg 1 
13 ds 1 
14 1 1 
15 sd 2 
16 sg 2 
17 2 2 
18 dsg 2 
19 sdg 2 
20 dfg 2 
21 2 2 

這裏只是一些例子,在第二列的最大數量爲520,而在第二列的數字是連續的和秩序。

+1

當然可以。你想要產生什麼?請更新您的問題。 – Ding

+0

對不起,這是我的錯,我試圖更新它,請讓我知道,如果它不明確。 – kkjoe

回答

1

假設你的破發點的數量和要填充的值的字符串:

df[2] = pd.to_numeric(df[1], errors='coerce').bfill().astype('int') 

df 
Out: 
     1 2 
0 an 0 
1 df 0 
2  0 0 
3 sdg 0 
4 gd 0 
5 dg 0 
6  0 0 
7 dc 0 
8  0 0 
9 dcd 1 
10 ds 1 
11 1 1 
12 sdg 1 
13 ds 1 
14 1 1 
15 sd 2 
16 sg 2 
17 2 2 
18 dsg 2 
19 sdg 2 
20 dfg 2 
21 2 2 
+0

謝謝!我嘗試了代碼,TypeError有一個錯誤:列表索引必須是整數或切片,而不是str。我不知道爲什麼,謝謝! – kkjoe

+0

產生該錯誤的代碼是什麼? – ayhan

+0

------------------------------------------------- -------------------------- TypeError Traceback(最近呼叫最後一個) in () ----> 1 data ['c'] = pd.to_numeric(data ['a'],errors ='coerce')。bfill()。astype('int') TypeError:list indices必須是整數或切片,而不是str – kkjoe