簡體   English   中英

如何根據excel的另一列值對列求和

[英]how to sum of columns based on another column value of excel

我想問一下如何使用python或excel進行求和。 喜歡根據“時間”列對“數字”列進行求和。 (00:00 am - 00:59 am) 的持續時間總和是 (2+4) 6. (02:00 am - 02:59 am) 的持續時間總和是 (3+1) 4. 你能嗎請指教如何?

在此處輸入圖片說明

當您有一個數據框時,您可以使用 groupby 來完成此操作:

# import pandas module
import pandas as pd
# Create a dictionary with the values
data = {
    'time' : ["12:20:51", "12:40:51", "2:26:35", "2:37:35"],
    'number' : [2, 4, 3, 1]}

# create a Pandas dataframe
df = pd.DataFrame(data)
# or load the CSV
df = pd.read_csv('path/dir/filename.csv')
# Convert time column to datetime data type
df['time'] =  df['time'].apply(pd.to_datetime, format='%H:%M:%S')
# add values by hour
dff = df.groupby(df['time'].dt.hour)['number'].sum()
print(dff.head(50))

輸出:

time
12    6
2     4

當您需要多於一列時。 您可以在 .groupby() 中將列作為列表傳遞。 代碼如下所示:

import pandas as pd
df = pd.read_csv('filename.csv')
# Convert time column to datetime data type
df['time'] = df['time'].apply(pd.to_datetime, format='%H:%M:%S')
df['date'] = df['date'].apply(pd.to_datetime, format='%d/%m/%Y')
# add values by hour
dff = df.groupby([df['date'], df['time'].dt.hour])['number'].sum()
print(dff.head(50))
# save the file
dff.to_csv("filename.csv")

暫無
暫無

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

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