![](/img/trans.png)
[英]Matching values from one csv file to another and replace entire column using pandas/python
[英]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
我正在使用python3
和Pandas
模塊來處理這個 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(',', '')
可選轉換為int
與astype
:
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
我正在使用python3
和Pandas
模塊來處理這個 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.