1 回答

TA貢獻(xiàn)2036條經(jīng)驗(yàn) 獲得超8個(gè)贊
該行為與任何特定文件類型無關(guān),對于列名稱中帶有空格的任何數(shù)據(jù)框都是如此,無論創(chuàng)建數(shù)據(jù)框的方法如何。
解決方案是通過用另一個(gè)字符(例如 )替換空格來修復(fù)列
'_'
。小寫列名不會(huì)預(yù)設(shè)相同的問題。我的猜測是列名中存在前導(dǎo)或尾隨空格,可以使用以下命令將其刪除
.str.strip()
import pandas as pd
df = pd.DataFrame({'col_no_spaces': [1, 2, 3], 'col with spaces': ['a', 'b', 'c'], ' col_with_leading_trailing_ws ': [4, 5, 6]})
# display(df)
? ?col_no_spaces col with spaces? ?col_with_leading_trailing_ws?
0? ? ? ? ? ? ? 1? ? ? ? ? ? ? ?a? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?4
1? ? ? ? ? ? ? 2? ? ? ? ? ? ? ?b? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?5
2? ? ? ? ? ? ? 3? ? ? ? ? ? ? ?c? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?6
請注意帶空格的列,不可用于View as Series
# strip leading and trailing whitespace, and replace spaces in column names with _
df.columns = df.columns.str.strip().str.replace('\s+', '_', regex=True)
# display(df)
? ?col_no_spaces col_with_spaces? col_with_leading_trailing_ws
0? ? ? ? ? ? ? 1? ? ? ? ? ? ? ?a? ? ? ? ? ? ? ? ? ? ? ? ? ? ?4
1? ? ? ? ? ? ? 2? ? ? ? ? ? ? ?b? ? ? ? ? ? ? ? ? ? ? ? ? ? ?5
2? ? ? ? ? ? ? 3? ? ? ? ? ? ? ?c? ? ? ? ? ? ? ? ? ? ? ? ? ? ?6
請注意,所有列現(xiàn)在均可用于View as Series
添加回答
舉報(bào)