[英]correct way to sum values of second column for all unique values of first column pandas dataframe
我是熊貓新手。 我有一個數據框,在第一列中有星期幾,在第二列中有值列表。 我希望總結每個工作日的總價值。 所以:
day values
0 Thursday 3
1 Thursday 0
2 Friday 0
2 Friday 1
4 Saturday 3
5 Saturday 1
etc...
會成為 :
day values
0 Thursday 3
1 Friday 1
2 Saturday 4
etc...
通過匯總每天熊貓的出現次數,我實現了我想要的目標:-原始df稱為value_frame
values_on_day =pd.DataFrame(value_frame.groupby(value_frame.day).apply(lambda subf: subf['values'].sum()))
但是,將值和工作日填充到一個單元格中,因此:print dict(values_on_day)等於:
{0: day
Friday 3
Monday 4
Saturday 7
Sunday 22
Thursday 26
Tuesday 2
Wednesday 4
Name: 0, dtype: int64}
我已經編碼了一種變通方法,方法是將列轉換為字典,然后再轉換為列表,然后再轉換為字典,再轉換為df,但是顯然這不是這樣做的方法。
請您告訴我在原始數據框中獲得一周中每一天總價值的正確方法嗎?
我同意@Primer。 這是編寫所需代碼的正確方法。 我已經更新了答案,添加了一個index
(工作日編號)。
import pandas as pd
import time
df = pd.DataFrame({'day': ['Thursday', 'Thursday', 'Friday', 'Friday', 'Saturday', 'Saturday'], 'values': [3,0,0,1,3,1]})
result = df.groupby('day').sum()
# Reseting the index
result.reset_index(inplace=True)
# Creating a new index as the weekday number for each day
result.index = result['day'].apply(lambda x: time.strptime(x, '%A').tm_wday)
# Renaming the index
result.index.names = ['weekday']
# Sorting by index
result.sort_index(inplace=True)
print(result)
得到:
day values
weekday
3 Thursday 3
4 Friday 1
5 Saturday 4
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.