如何对int64和对象类型求和?

2024-10-01 19:15:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据帧:

Setup   Setup1  Setup2

720       60    540

360       60    180

300       0      0

1,8       60    60

600       60    540

Setup = object
Setup1 = int64
Setup2 = int64 

我想把所有的安装时间加在一起。我就是这样做的:

^{pr2}$

但是它会导致一个NaN值,这可能是由于int64和对象类型造成的。我试着用以下方法改变它:

df2['SetupDuration1'] = df2['SetupDuration1'].convert_objects(convert_numeric=True)
df2['SetupDuration2'] = df2['SetupDuration2'].convert_objects(convert_numeric=True)
df2['Duration'] = df2['Duration'].convert_objects(convert_numeric=True)

用点代替逗号的问题现在已经解决了,但是1.8意味着1800。所以我怎么可能会有一个包含a的值。系数为1000?在

IF cell contains a dot . THEN
    value*1000

Tags: 数据trueconvertobjectsobjectsetupdurationdf2
1条回答
网友
1楼 · 发布于 2024-10-01 19:15:15

首先,您需要将NaN值更改为适当的浮点值:

df['Setup'] = df['Setup'].apply(lambda x: float(str(x).replace(',', '.')) if ',' in str(x) else float(x))

或更动态地针对所有列:

^{pr2}$

然后可以对所有Setup列求和:

setup_sum = sum(sum(df[col].values) for col in df.columns if 'Setup' in col)

相关问题 更多 >

    热门问题