[英]Python DataFrame String replace accidently Returing NaN
這是因為 excel 導入中的173
和148
值是數字,而不是字符串。 由於str.replace
返回一個非數字值,因此這些值變為NaN
。 您可以通過在這些位置設置帶有數字的數據框來證明這一點:
df = pd.DataFrame({ 'sales':['75.8K','6.9K','7K','6.9K',173,148]})
df.dtypes
# sales object
# dtype: object
df['num'] = df['sales'].str.replace('K','')
輸出:
sales num
0 75.8K 75.8
1 6.9K 6.9
2 7K 7
3 6.9K 6.9
4 173 NaN
5 148 NaN
如果您不介意所有值都是字符串,則可以使用
df = pd.read_excel('manual_import.xlsx', dtype=str)
或者
df = pd.read_excel('manual_import.xlsx', converters={'sales':str})
應該只是將所有sales
值轉換為字符串。
嘗試這個:
df['nums'] = df['sales'].astype(str)
df['nums'] = pd.to_numeric(df['nums'].str.replace('K', ''))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.