pandas dataframe рассчитывает несколько строк на основе диапазонов и значений столбцов - PullRequest
0 голосов
/ 30 сентября 2019

Дано: AB или A (имя), start и end дата, как я могу найти средний размер в данном кадре данных панд (df)?

Пример: Give'A' с startdate: 2009-10-04 до enddate: 2009-10-06, результат 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

Ответы [ 2 ]

2 голосов
/ 30 сентября 2019

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()

Вывод

A    19.646667

Вы можете изменить значениезамените «имя» именем, которое вы хотите.

2 голосов
/ 30 сентября 2019

Мы можем использовать .loc

df.loc[df['Unnamed0'].eq('A')&df.Date.between('2009-10-04','2009-10-06'),'Size'].mean()
Out[491]: 19.646666666666665
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...