我有一個包含字符串值和布爾值的列的pandas數據框。由於這種差異,該列的dtype推斷爲'object'。當我在這個列上運行.str.strip()時,它將所有的布爾值都變成NaN。有誰知道我可以如何防止這種情況?我可以用布爾值變成字符串,但是南?從piRSquared
在pandas DF上打印空白列將bool值轉換爲NaN
1
A
回答
3
借款DF:
首先將所有值string
,然後帶:
df['A'] = df['A'].astype(str).str.strip()
print (df)
A
0 a
1 b
2 True
3 False
4 True
如果需要混合類型 - 布爾值與字符串添加combine_first
用於替換NaN
s到boolean
:
df['A'] = df['A'].str.strip().combine_first(df.A)
print (df)
A
0 a
1 b
2 True
3 False
4 True
如果需要轉換所有列:
df = df.astype(str).applymap(lambda x: x.strip())
或者:
df = df.astype(str).apply(lambda x: x.str.strip())
3
設置
df = pd.DataFrame(dict(A=[' a', ' b ', True, False, 'True']))
選項1個
使用pd.Series.str.strip
串訪問方法與fillna
df.A.str.strip().fillna(df.A)
0 a
1 b
2 True
3 False
4 True
Name: A, dtype: object
注:
type
是str
或bool
df.A.str.strip().fillna(df.A).apply(type)
0 <class 'str'>
1 <class 'str'>
2 <class 'bool'>
3 <class 'bool'>
4 <class 'str'>
Name: A, dtype: object
選項2
使用pd.Series.replace
df.A.replace('^\s+|\s+$', '', regex=True)
0 a
1 b
2 True
3 False
4 True
Name: A, dtype: object
混合類型也保存在這裏。
我們可以用pd.DataFrame.replace
對整個數據幀
df.replace('^\s+|\s+$', '', regex=True)
A
0 a
1 b
2 True
3 False
4 True
+0
當你們這麼快時,我該如何回答問題? –
+1
@cᴏʟᴅsᴘᴇᴇᴅ[** NoSympathy **](https://stackoverflow.com/users/4909087/c%E1%B4%8F%CA%9F%E1%B4%85s%E1%B4%98%E1%B4 %87%E1%B4%87%E1%B4%85?tab =聲望)( - ; – piRSquared
相關問題
- 1. 無法將「空白」轉換爲「bool」
- 2. Python Pandas將字符串轉換爲NaN
- 3. 如何將多個Pandas DF轉換爲單個Spark DF?
- 4. 將nan值轉換爲零
- 5. pandas - 將列轉換爲分鐘值
- 6. pandas df在fillna()之後仍然是NaN
- 7. 將列表轉換爲DataTable空白{}
- 8. 在SQL中將NaN值轉換爲NULL或將NaN轉換爲0
- 9. VBA Excel - 將列值轉換爲另一列插入空白行
- 10. 轉換可爲空bool? to bool
- 11. 將df列轉換爲元組
- 12. pandas dataframe;在將NaN轉換爲0時出現錯誤
- 13. Python Pandas合併行並將數據轉換爲第二個df
- 14. 用NaN替換Pandas DataFrame中的空列表值
- 15. 將列轉爲空白
- 16. 在Pandas中打印相應的列值
- 17. 轉換空白單元格爲NaN在Excel文件
- 18. BOOL打印爲-65
- 19. 斯卡拉長轉換爲字符串打印空白
- 20. Spark將熊貓df轉換爲S3
- 21. 將單選按鈕值轉換爲bool
- 22. iOS將bool值轉換爲字符串
- 23. 將包含字符串和NAN的列轉換爲Pandas中的整數列表
- 24. 當我將pandas df轉換爲np數組時,如何保留列名?
- 25. OpenSearchServer返回空白值NaN
- 26. 使用python代碼在MySql列中將「NAN」值轉換爲NULL
- 27. 將bool轉換爲int?
- 28. 將df列中的值轉換爲True/False
- 29. 在另一列中基於nan替換pandas列中的值
- 30. 將空值替換爲空白
工作我得到了一個: AttributeError的: '海峽' 對象有沒有屬性 '海峽'。但我改變了:'df = df.astype(str).apply(lambda x:x.strip())'這似乎是工作。謝謝! – purplefloyd
我編輯一列的答案,所有列需要'df = df.astype(str).apply(lambda x:x.str.strip())' – jezrael
@piRSquared - 你確定嗎? – jezrael