【发布时间】:2022-07-25 18:00:44
【问题描述】:
我尝试从 python 中的数据框中创建一个名为“Years”的新列
我的代码是:
df['Years'] = df['Days']//365.
我想得到 int 形式的输出,所以我使用 '//' 但为什么我得到的输出在 float = 13.0
【问题讨论】:
我尝试从 python 中的数据框中创建一个名为“Years”的新列
我的代码是:
df['Years'] = df['Days']//365.
我想得到 int 形式的输出,所以我使用 '//' 但为什么我得到的输出在 float = 13.0
【问题讨论】:
试试这个:
df['Years'] = (df['Days']//365).astype('int32')
【讨论】:
实际数据类型对您来说重要吗? // 进行地板除法,但您的 Series 的数据类型仍然是浮点数。
如果您真的想要整数,请转换系列。
import pandas as pd
df = pd.DataFrame({"days": [5303.0, 6604.1, 64202.2, 93.3]})
df["years"] = (df["days"] // 365).astype(int)
print(df.years)
0 14
1 18
2 175
3 0
Name: years, dtype: int64
【讨论】: