洗掉日期幀(所有列)中所有多余空格的pythonic方法是什么。我知道方法.str.strip()可用于單列或每列。資料框的列數一樣多,我想在整個資料框上應用該方法。空格出現在不同的點、文本的開頭、中間和結尾。附件是洗掉空格前后資料框外觀的視圖。下面的資料框是預期的結果。

我已經搜索過,我遇到的大多數相關問題都是針對單個專欄的。
樣本資料
import pandas as pd
data = [[' James Brown ', '10', 'USA'], [' James Bond', '15', 'UK'], ['Jimbo Bosco ', '14', 'Unknown']]
df = pd.DataFrame(data, columns = ['Name', 'Age', 'Country'])
′′′
uj5u.com熱心網友回復:
你可以使用apply:
df = df.applymap(lambda x: " ".join(x.split()) if isinstance(x, str) else x)
uj5u.com熱心網友回復:
一個想法是做以下組合:
regex洗掉重復的空格(例如“詹姆斯邦德”到“詹姆斯邦德”)str.strip洗掉前導/尾隨空格(例如“詹姆斯邦德”到“詹姆斯邦德”)。
您可以通過以下兩種方式之一執行此操作:
1.在整個DataFrame上:
df = df.replace("\s ", " ", regex=True).apply(lambda x: x.str.strip())
2. 在每一列上分別:
for col in ["Name", "Country"]:
df[col] = df[col].replace("\s ", " ", regex=True).str.strip()
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/415718.html
標籤:
上一篇:如何將DataFrame分類到bin中,保留每個bin的名稱?
下一篇:將具有唯一行ID列和串列列的PythonPandasDataFrames合并/合并到具有所有ID和統一、非重復串列的DataFrame?
