【发布时间】:2021-09-05 09:30:09
【问题描述】:
我编写了一个小代码来测试如何在 Python 中更改 DataFrame 列的数据类型(版本 3.8.5 并在 Jupyter Notebook 中运行代码)。但它并没有改变数据类型。任何想法,我做错了什么?
import pandas as pd
data = {'Name':['Tom', 'nick', 'krish', 'jack'],
'Age':['20+', '21.5', '19+', '18.6']}
df = pd.DataFrame(data)
df["Age_Corrected"] = df["Age"].str.replace("+","")
df
df["Age_Corrected"].astype("float")
df.info()
但我没有将 Age_Corrected 设置为浮点数。它仍然显示对象。我从 df.info() 得到的结果如下所示。
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4 entries, 0 to 3
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Name 4 non-null object
1 Age 4 non-null object
2 Age_Corrected 4 non-null object
dtypes: object(3)
memory usage: 112.0+ bytes
【问题讨论】:
-
查看链接副本的已接受答案的
astype部分。正如下面的答案所述,astype不是就地操作。