我有一個 json 檔案 a.json 具有以下結構:
[
{ "name":"\n John\n ", "age": "30 \n ","car":" Bmw \n \n" },
{ "name":"\n Joe\n ", "age": "20 \n ","car":" mercedes \n \n" },
{ "name":"\n Alex\n ", "age": "18 \n ","car":" tesla \n \n" }
]
我想去掉每個值的所有空格和換行符。這是我的代碼:
df = pd.read_json('a.json')
df= df.replace(r'\n','',regex=True)
即使我寫了,我也洗掉了換行符但沒有洗掉空格
df.columns=df.columns.str.replace(' ','')
df.columns=df.columns.str.strip()
df.columns=df.columns.str.lstrip()
我的輸出:
name age car
0 John 30 Bmw
1 Joe 20 mercedes
2 Alex 18 tesla
請問我該怎么做?
uj5u.com熱心網友回復:
一種選擇是使用串列和字典理解來清理 json 本身:
import pandas as pd
data = [
{ "name":"\n John\n ", "age": "30 \n ","car":" Bmw \n \n" },
{ "name":"\n Joe\n ", "age": "20 \n ","car":" mercedes \n \n" },
{ "name":"\n Alex\n ", "age": "18 \n ","car":" tesla \n \n" }
]
data = [{k:v.strip() for k,v in each.items()} for each in data]
df = pd.DataFrame(data)
或者您可以只遍歷每一列:
data = [
{ "name":"\n John\n ", "age": "30 \n ","car":" Bmw \n \n" },
{ "name":"\n Joe\n ", "age": "20 \n ","car":" mercedes \n \n" },
{ "name":"\n Alex\n ", "age": "18 \n ","car":" tesla \n \n" }
]
df = pd.DataFrame(data)
for col in df.columns:
df[col] = df[col].str.strip()
輸出:
print(df)
name age car
0 John 30 Bmw
1 Joe 20 mercedes
2 Alex 18 tesla
uj5u.com熱心網友回復:
您可以使用 pandas applymap 函式來迭代所有值
import pandas as pd
df = pd.read_json('a.json')
df = df.applymap(lambda x: x.strip() if isinstance(x, str) else x)
print(df)
輸出 :
name age car
0 John 30 Bmw
1 Joe 20 mercedes
2 Alex 18 tesla
uj5u.com熱心網友回復:
@chitown88的答案可能更快,但如果你想使用正則運算式,你可以這樣做:
df.replace('(^\s |\s $)', '', regex=True, inplace=True)
輸出:
name age car
0 John 30 Bmw
1 Joe 20 mercedes
2 Alex 18 tesla
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/425811.html
上一篇:無法訪問在AKS上部署的應用程式
