如何将数据框列中的数字转换为逗号分隔

时间:2020-04-13 14:14:17

标签: python pandas

我正在使用python,因此在我的数据帧中有一个名为 C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\indexes\base.py in get_loc(self, key, method, tolerance) 2646 return self._engine.get_loc(key) 2647 except KeyError: -> 2648 return self._engine.get_loc(self._maybe_cast_indexer(key)) 2649 indexer = self.get_indexer([key], method=method, tolerance=tolerance) 2650 if indexer.ndim > 1 or indexer.size > 1: pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc() pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc() pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.Int64HashTable.get_item() pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.Int64HashTable.get_item() KeyError: 3 的列,此列的值为Company Profit

我想将所有值转换为每三位数以逗号分隔,例如:整列中的33536310, 842925200,.. etc.

2 个答案:

答案 0 :(得分:0)

类似的事情会起作用:

In [601]: def thousand_separator(val): 
     ...:     return f"{val:,}"  
     ...: 

In [602]: df['Company Profit'] = df['Company Profit'].apply(thousand_separator) 
In [603]: df['Company Profit']                                                                                                                                                              
Out[602]: 
0     33,536,310
1    842,925,200
Name: Profit, dtype: object

答案 1 :(得分:0)

或者,您可以在新版本的Python中使用f-string进行此操作。使用逗号作为分隔符:

df = pd.DataFrame({'Company Profit':[33536310,842925200,231535366]})
df['Company Profit'] = df['Company Profit'].apply(lambda x: f"{x:,}")
print(df)

  Company Profit
0     33,536,310
1    842,925,200
2    231,535,366