簡體   English   中英

使用 Python Pandas 從列(csv 文件)中的值中刪除逗號

[英]Removing comma from values in column (csv file) using Python Pandas

我想從名為 size 的列中刪除逗號。 CSV 如下所示:

number   name    size
   1      Car     9,32,123
   2      Bike    1,00,000
   3      Truck   10,32,111

我想要 output 如下:

number   name    size
   1      Car     932123
   2      Bike    100000
   3      Truck   1032111

我正在使用python3Pandas模塊來處理這個 csv。 我正在嘗試replace方法,但沒有得到所需的 output。

我的代碼快照:

import pandas as pd

df = pd.read_csv("file.csv")

// df.replace(",","")
// df['size'] = df['size'].replace(to_replace = "," , value = "")
// df['size'] = df['size'].replace(",", "")

df['size'] = df['size'].replace({",", ""})
print(df['size'])  // expecting to see 'size' column without comma

我沒有看到任何錯誤/異常。 最后一行print(df['size'])只是按原樣顯示值,即用逗號。

使用replace ,我們需要regex=True ,否則它會在單元格中查找完全匹配,即僅在其中包含,的單元格:

>>> df["size"] = df["size"].replace(",", "", regex=True)
>>> df

   number   name     size
0       1    Car   932123
1       2   Bike   100000
2       3  Truck  1032111

嘗試使用str.replace代替:

df['size'] = df['size'].str.replace(',', '')

可選轉換為intastype

df['size'] = df['size'].str.replace(',', '').astype(int)
   number   name     size
0       1    Car   932123
1       2   Bike   100000
2       3  Truck  1032111

使用的樣本框架:

df = pd.DataFrame({'number': [1, 2, 3], 'name': ['Car', 'Bike', 'Truck'],
                   'size': ['9,32,123', '1,00,000', '10,32,111']})
   number   name       size
0       1    Car   9,32,123
1       2   Bike   1,00,000
2       3  Truck  10,32,111

我正在使用python3Pandas模塊來處理這個 csv

請注意, pandas.read_csv function 有可選參數thousands ,如果,用於表示千位,您可能會設置thousands=","請考慮以下示例

import io
import pandas as pd
some_csv = io.StringIO('value\n"1"\n"1,000"\n"1,000,000"\n')
df = pd.read_csv(some_csv, thousands=",")
print(df)

output

     value
0        1
1     1000
2  1000000

為簡潔起見,我使用io.StringIO ,提供與io.StringIO中的第一個參數相同內容的文件名可能會達到相同的效果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM