python改变列的数据类型_python – Pandas:更改列的数据类型
您可以使用
pd.to_numeric(在版本0.17中引入)將列或Series轉換為數字類型。該函數還可以使用apply應用于DataFrame的多個列。
重要的是,該函數還接受一個錯誤關鍵字參數,它允許您強制非數字值為NaN,或者簡單地忽略包含這些值的列。
示例使用如下所示。
單列/系列
這里有一個使用一系列字符串的例子,它有一個對象dtype:
>>> s = pd.Series(['1', '2', '4.7', 'pandas', '10'])
>>> s
0 1
1 2
2 4.7
3 pandas
4 10
dtype: object
該函數的默認行為是,如果它不能轉換一個值。在這種情況下,它不能處理字符串’熊貓’:
>>> pd.to_numeric(s) # or pd.to_numeric(s, errors='raise')
ValueError: Unable to parse string
而不是失敗,我們可能想要“熊貓”被認為是一個缺失/壞值。我們可以強制無效值到NaN,如下所示:
>>> pd.to_numeric(s, errors='coerce')
0 1.0
1 2.0
2 4.7
3 NaN
4 10.0
dtype: float64
第三個選項只是在遇到無效值時忽略操作:
>>> pd.to_numeric(s, errors='ignore')
# the original Series is returned untouched
多列/整個DataFrames
我們可能希望將此操作應用于多個列。依次處理每一列是乏味的,所以我們可以使用DataFrame.apply使該函數對每一列起作用。
借用DataFrame的問題:
>>> a = [['a', '1.2', '4.2'], ['b', '70', '0.03'], ['x', '5', '0']]
>>> df = pd.DataFrame(a, columns=['col1','col2','col3'])
>>> df
col1 col2 col3
0 a 1.2 4.2
1 b 70 0.03
2 x 5 0
然后我們可以寫:
df[['col2','col3']] = df[['col2','col3']].apply(pd.to_numeric)
現在“col2”和“col3”根據需要具有dtype float64。
但是,我們可能不知道哪些列可以可靠地轉換為數字類型。在這種情況下,我們可以寫:
df.apply(lambda x: pd.to_numeric(x, errors='ignore'))
然后該函數將應用于整個DataFrame。可以轉換為數字類型的列將被轉換,而不能(例如,它們包含非數字字符串或日期)的列將被單獨保留。
還有用于轉換為日期和時間戳的pd.to_datetime和pd.to_timedelta。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的python改变列的数据类型_python – Pandas:更改列的数据类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网络克隆软件_网文生成器,克隆的是骗钱“
- 下一篇: websocket python爬虫_p