Dataframe 中以日期为列的每月值的平均值
Mean of values Monthly in Dataframe with date as column
感谢您花时间帮助我:)
我有如下所示的 DataFrame (df_NSE_Price_):
Company Name ID 2000-01-03 00:00:00 2000-01-04 00:00:00 ....
Reliance Industries Ltd. 100325 50.810 54.
Tata Consultancy Service 123455 123 125
..
我想要如下输出:
Company Name ID March 00 April 00 .....
Reliance Industries Ltd 100325 52 55
Tata Consultancy Services 123455 124.3 124
..
输出数据必须具有月数据的平均值。
到目前为止我已经试过了
df_NSE_Price_.resample('M',axis=1).mean()
但这给了我错误
仅对 DatetimeIndex、TimedeltaIndex 或 PeriodIndex 有效,但得到了 'Index'
的实例
像这样的东西应该可以工作:
df.transpose().resample('M',axis=1).mean().transpose()
首先,我将数据转换为数据框(我也添加了一个包含 2 月信息的列)。
import pandas as pd
columns = ('Company Name',
'ID',
'2000-01-03 00:00:00',
'2000-01-04 00:00:00',
'2000-02-04 00:00:00')
data = [('Reliance Industries Ltd.', 100325, 50.810, 54., 66.0),
('Tata Consultancy Service', 123455, 123, 125, 130.0),]
df = pd.DataFrame(data=data, columns=columns)
其次,我使用公司和ID创建了一个二级索引(MultiIndex)。现在,所有列标签都是日期。然后,我将列标签转换为日期格式(使用 .to_datetime()
df = df.set_index(['Company Name', 'ID'])
df.columns = pd.to_datetime(df.columns)
第三,我按月重新采样,使用 'axis=1' 按列聚合。这会为每一列创建一个月。使用 'to_period()':
从月末日期转换为期间
df = df.resample('M', axis=1).sum()
df.columns = df.columns.to_period('M')
2000-01 2000-02
Company Name ID
Reliance Industries Ltd. 100325 104.81 66.0
Tata Consultancy Service 123455 248.00 130.0
感谢您花时间帮助我:)
我有如下所示的 DataFrame (df_NSE_Price_):
Company Name ID 2000-01-03 00:00:00 2000-01-04 00:00:00 ....
Reliance Industries Ltd. 100325 50.810 54.
Tata Consultancy Service 123455 123 125
..
我想要如下输出:
Company Name ID March 00 April 00 .....
Reliance Industries Ltd 100325 52 55
Tata Consultancy Services 123455 124.3 124
..
输出数据必须具有月数据的平均值。
到目前为止我已经试过了
df_NSE_Price_.resample('M',axis=1).mean()
但这给了我错误 仅对 DatetimeIndex、TimedeltaIndex 或 PeriodIndex 有效,但得到了 'Index'
的实例像这样的东西应该可以工作: df.transpose().resample('M',axis=1).mean().transpose()
首先,我将数据转换为数据框(我也添加了一个包含 2 月信息的列)。
import pandas as pd
columns = ('Company Name',
'ID',
'2000-01-03 00:00:00',
'2000-01-04 00:00:00',
'2000-02-04 00:00:00')
data = [('Reliance Industries Ltd.', 100325, 50.810, 54., 66.0),
('Tata Consultancy Service', 123455, 123, 125, 130.0),]
df = pd.DataFrame(data=data, columns=columns)
其次,我使用公司和ID创建了一个二级索引(MultiIndex)。现在,所有列标签都是日期。然后,我将列标签转换为日期格式(使用 .to_datetime()
df = df.set_index(['Company Name', 'ID'])
df.columns = pd.to_datetime(df.columns)
第三,我按月重新采样,使用 'axis=1' 按列聚合。这会为每一列创建一个月。使用 'to_period()':
从月末日期转换为期间df = df.resample('M', axis=1).sum()
df.columns = df.columns.to_period('M')
2000-01 2000-02
Company Name ID
Reliance Industries Ltd. 100325 104.81 66.0
Tata Consultancy Service 123455 248.00 130.0