[英]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.