簡體   English   中英

如何總結一個int64和對象類型?

[英]How to sum a int64 and object type?

我有以下數據框:

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 

我想將所有設置時間匯總為一個度量。 這是我的工作:

totalduration2 = (np.sum(dfgroup2[['Setup1', 'Setup2','Setup']].values))

但是,它會導致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

首先,您需要將NaN值更改為適當的浮點數:

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

或更動態地查看所有列:

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

然后,您可以匯總所有“ Setup列:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM