Cabin_Fare.Cabin.head(20)(產生這些結果)str.ljust()(使用於值進行排序)
583 A10
208 A11
475 A14
556 A16
331 A18
284 A19
599 A20
28 A21
630 A23
867 A24
647 A26
112 A29
209 A31
185 A32
445 A34
293 A34
374 A34
806 A36
96 A5
23 A6
不產生變化,以大熊貓柱(系列)我將其分配給x和轉換該對象類型爲字符串類型。
x = Cabin_Fare.Cabin.astype('string')
我試圖把像A5/A6(最後兩個值)一個空間到左邊的值,因爲當列進行排序,只有2的LEN任何值不被正確排序。我假設,因爲他們沒有平等對齊的那些值有3的len值。
所以我試圖運行此代碼,但我沒有看到任何更改(A5/A6沒有被推動一個空間到左)
for i in x[x.notnull()]:
if len(i) == 2:
i= i.ljust(3,)
編輯:我試圖利用Boud的解決方案,我遇到一個問題,因爲有值/實例,其中僅信(無數字)是存在的。 錯誤顯示爲:
ValueError: invalid literal for long() with base 10: ''
爲了規避這一點,我想,「0」添加到其中只有信是存在的價值。
for i in x:
if len(i)==1:
i = i+'0'
但是,這些變化並沒有超出循環內部的範圍。
'df.Cabin.str.ljust(3)'做你想做的一切。如果你有一個排序問題,然後問這個問題。 – piRSquared
哇,你是對的。我不明白爲什麼我的循環不起作用。當我運行循環時,儘管沒有錯誤,A5和A6並沒有像我在運行代碼時那樣被推到左邊。 – Moondra