簡體   English   中英

Pandas - 去除空白

[英]Pandas - Strip white space

我正在使用 python csvkit來比較這樣的 2 個文件:

df1 = pd.read_csv('input1.csv', sep=',\s+', delimiter=',', encoding="utf-8")
df2 = pd.read_csv('input2.csv', sep=',\s,', delimiter=',', encoding="utf-8")
df3 = pd.merge(df1,df2, on='employee_id', how='right')
df3.to_csv('output.csv', encoding='utf-8', index=False)

目前我正在通過一個腳本運行該文件,該腳本從employee_id列中去除空格。

employee_id的一個例子:

37 78973 3
23787
2 22 3
123

有沒有辦法讓csvkit做到這一點並為我節省一步?

你可以strip()使用整個系列在熊貓.str.strip() :

df1['employee_id'] = df1['employee_id'].str.strip()
df2['employee_id'] = df2['employee_id'].str.strip()

這將刪除df1df2 employee_id列上的前導/尾隨空格

或者,您可以修改read_csv行以也使用skipinitialspace=True

df1 = pd.read_csv('input1.csv', sep=',\s+', delimiter=',', encoding="utf-8", skipinitialspace=True)
df2 = pd.read_csv('input2.csv', sep=',\s,', delimiter=',', encoding="utf-8", skipinitialspace=True)

看起來您正在嘗試刪除包含數字的字符串中的空格。 您可以通過以下方式執行此操作:

df1['employee_id'] = df1['employee_id'].str.replace(" ","")
df2['employee_id'] = df2['employee_id'].str.replace(" ","")

你可以做strip()pandas.read_csv()為:

pandas.read_csv(..., converters={'employee_id': str.strip})

如果您只需要去除前導空格:

pandas.read_csv(..., converters={'employee_id': str.lstrip})

並刪除所有空格:

def strip_spaces(a_str_with_spaces):
    return a_str_with_spaces.replace(' ', '')

pandas.read_csv(..., converters={'employee_id': strip_spaces})
Df['employee']=Df['employee'].str.strip()

刪除熊貓數據框中空白的最佳和最簡單的方法是:-

df1 = pd.read_csv('input1.csv')

df1["employee_id"]  = df1["employee_id"].str.strip()

就是這樣

要從所有列或變量中去除空格,我們可以將str.strip()函數與lambda一起使用。

df = df.apply(lambda x: x.str.strip())

要從單列或變量中去除空格,我們可以在pandas系列或列上使用str.strip()函數。

df['column1'] = df['column1'].str.strip()

從數據框/熊貓列名稱或標題中刪除空格

df.columns = df.columns.str.strip()

暫無
暫無

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

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