我有一個包含長數字的列的數據框。我試圖將數字列中的所有值轉換爲逗號分隔數千。Python/Pandas:用逗號分隔數以千計的數字
df
col_1 col_2
Rooney 34590927
Ronaldo 5467382
John 25647398
如何迭代,得到以下結果?
預期結果:
col_1 col_2
Rooney 34,590,927
Ronaldo 5,467,382
John 25,647,398
我有一個包含長數字的列的數據框。我試圖將數字列中的所有值轉換爲逗號分隔數千。Python/Pandas:用逗號分隔數以千計的數字
df
col_1 col_2
Rooney 34590927
Ronaldo 5467382
John 25647398
如何迭代,得到以下結果?
預期結果:
col_1 col_2
Rooney 34,590,927
Ronaldo 5,467,382
John 25,647,398
您可以使用字符串格式化,
df['col_2'] = pd.to_numeric(df['col_2'].fillna(0), errors='coerce')
df['col_2'] = df['col_2'].map('{:,.2f}'.format)
千萬記得COL_2現在將字符串不是整數。
col_1 col_2
0 Rooney 34,590,927.00
1 Ronaldo 5,467,382.00
2 John 25,647,398.00
申請格式功能COL_2
df = df.assign(col_2=df.col_2.astype(int).apply('{:,}'.format))
col_1 col_2
0 Rooney 34,590,927
1 Ronaldo 5,467,382
2 John 25,647,398
我得到了以下錯誤: ValueErrorTraceback(最新最後調用) ----> 1 DF = df.assign(COL_2 = df.col_2.apply( '{:,}' 格式) ) 2 DF 在/usr/lib64/python2.7/site-packages/pandas/core/series.pyc申請(個體,FUNC,convert_dtype,指定參數時,** kwds) 2218否則: 2219值=自.asobject - > 2220 mapped = lib.map_infer 2222 if len(mapped)and isinstance pandas.lib.map_infer中的rence.pyx(pandas/lib.c:62658)() ValueError:無法用's'指定','。 –
@羅馬你沒有發佈完整的跟蹤 – galaxyan
@羅馬col_2的類型是什麼?您可能需要將col_2轉換爲int – galaxyan
我投這個!地圖imo比一般應用快得多。 –
我試過了: 'df ['col_2'] = df ['col_2']。astype(int).map('{:,。2f}'。format) 出現錯誤:ValueError:invalid literal長()以10爲底:'34,590,927'' –
df.dtypes的輸出是什麼? – Vaishali