![](/img/trans.png)
[英]Pandas DataFrame, how to calculate a new column element based on multiple rows
[英]pandas dataframe calculate multiple rows based on column ranges and values
給定: AB
或A
(名稱)、 start
和end
日期,我如何找到給定 pandas dataframe(df)中的平均大小?
示例:從startdate
: 2009-10-04 到enddate
: 2009-10-06 給出“A”,結果為 19.64。
Idx Unnamed: 0 Date Size
0 AB 2009-10-02 20.03
1 AB 2009-10-03 19.05
2 AB 2009-10-04 18.89
3 AB 2009-10-05 18.81
4 AB 2009-10-06 19.43
5 A 2009-10-02 19.36
6 A 2009-10-03 19.67
7 A 2009-10-04 19.59
8 A 2009-10-05 19.74
9 A 2009-10-06 19.61
我們可以使用.loc
df.loc[df['Unnamed0'].eq('A')&df.Date.between('2009-10-04','2009-10-06'),'Size'].mean()
Out[491]: 19.646666666666665
IIUC,這應該對你有用(雖然 WeNYoBen 的回答很優雅)
df['Date'] = pd.to_datetime(df['Date'])
m = (df['Date'] >= '2009-10-04') & (df['Date'] <= '2009-10-06')
name = df['Unnamed:0']=='A'
df[(m)&(name)].groupby('Unnamed:0')['Size'].mean()
Output
A 19.646667
您可以將掩碼“名稱”的值更改為您想要的名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.