iyya
iyya

Reputation: 43

resample data each column together in dataframe

i have a dataframe named zz zz columns name ['Ancolmekar','Cidurian','Dayeuhkolot','Hantap','Kertasari','Meteolembang','Sapan']

for col in zz.columns:
    df = pd.DataFrame(zz[col],index=pd.date_range('2017-01-01 00:00:00', '2021-12-31 23:50:00', freq='10T'))

df.resample('1M').mean()

error : invalid syntax

i want to know the mean value by month in 10 minutes data interval. when i run this just sapan values appear with NaN. before, i have replace the NaN data 1 else 0.

Sapan
2017-01-31  NaN
2017-02-28  NaN
2017-03-31  NaN
2017-04-30  NaN
2017-05-31  NaN
2017-06-30  NaN
2017-07-31  NaN
2017-08-31  NaN
2017-09-30  NaN
2017-10-31  NaN
2017-11-30  NaN
2017-12-31  NaN
2018-01-31  NaN
2018-02-28  NaN
2018-03-31  NaN
2018-04-30  NaN
2018-05-31  NaN
2018-06-30  NaN
2018-07-31  NaN
2018-08-31  NaN
2018-09-30  NaN
2018-10-31  NaN
2018-11-30  NaN
2018-12-31  NaN
2019-01-31  NaN
2019-02-28  NaN
2019-03-31  NaN
2019-04-30  NaN
2019-05-31  NaN
2019-06-30  NaN
2019-07-31  NaN
2019-08-31  NaN
2019-09-30  NaN
2019-10-31  NaN
2019-11-30  NaN
2019-12-31  NaN
2020-01-31  NaN
2020-02-29  NaN
2020-03-31  NaN
2020-04-30  NaN
2020-05-31  NaN
2020-06-30  NaN
2020-07-31  NaN
2020-08-31  NaN
2020-09-30  NaN
2020-10-31  NaN
2020-11-30  NaN
2020-12-31  NaN
2021-01-31  NaN
2021-02-28  NaN
2021-03-31  NaN
2021-04-30  NaN
2021-05-31  NaN
2021-06-30  NaN
2021-07-31  NaN
2021-08-31  NaN
2021-09-30  NaN
2021-10-31  NaN
2021-11-30  NaN
2021-12-31  NaN

what should i do? thanks before

Upvotes: 0

Views: 41

Answers (1)

radof
radof

Reputation: 611

You are re-assigninig variable df to a dataframe with a single column during each pass through the for loop. The last column is sapan. Hence, only this column is shown.

Additionally, you are setting the index on df that probably isn't the index in zz, therefore you get Not A Number NaN for non-existing values.

If the index in zz is corresponding to the one you are setting, this should work:

df = zz.copy()
df['new_column'] = pd.Series(pd.date_range('2017-01-01 00:00:00', '2021-12-31 23:50:00', freq='10T'))
df = df.set_index('new_column')
df.resample('1M').mean()

Upvotes: 2

Related Questions