Python 从数据框访问项目,并使用相同的方法创建一个新项目
我正在使用这个Python 从数据框访问项目,并使用相同的方法创建一个新项目,python,pandas,dataframe,Python,Pandas,Dataframe,我正在使用这个dataframe(df1): 其内容包含以年-月(1-12)格式编写的列。现在我必须创建一个新的dataframe,它包含来自Df1的数据,这些数据被划分为4个季度。以下是我所做的: Month = ['00','01','02','03','04','05','06','07','08','09','10','11','12'] Year=['00','01','02','03','04','05','06','07','08','09','10','11','12','13
dataframe
(df1
):
其内容包含以年-月(1-12)格式编写的列。现在我必须创建一个新的dataframe
,它包含来自Df1
的数据,这些数据被划分为4个季度。以下是我所做的:
Month = ['00','01','02','03','04','05','06','07','08','09','10','11','12']
Year=['00','01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16']
for i in range(0,15):
for j in range(0,12):
newdf = pd.DataFrame[df1.loc[2,'20'+Year[i]+'-'+Month[j+1]] + df1.loc[2,'20'+Year[i]+'-'+Month[j+2]]+ df1.loc[2,'20'+Year[i]+'-'+Month[j+3]],columns = ['Q1','Q2','Q3','Q4'] ]
j = j + 3
print newdf .
我专门为第二行执行了此操作,但是我需要对整个数据集执行此操作
现在我得到了这个错误:
“type”对象没有属性“getitem”
以下是示例数据:
0 CountyName SizeRank 2000-01 2000-02 2000-03 2000-04
1 Queens 1 NaN NaN NaN NaN
2 Los Angeles 2 204400 207000 209800 212300
3 Cook 3 136800 138300 140100 141900
4 Philadelphia 4 52700 53100 53200 53400
newdf应包含:
Q1
(204400+207000+209800)
类似于第二季度、第三季度、第四季度
如何继续?我认为您可以使用带有聚合的列axis=1
,但首先必须使用列CountyName
和SizeRank
,然后首先转换列名,然后:
-这是一个内置的功能。你可以添加到你的问题样本数据-5-6行和所需的输出吗?也可能有帮助。获取此错误:“Index”对象没有“to_period”属性这是输出或列:([u'RegionID',u'RegionName',u'State',u'Metro',u'CountyName',u'SizeRank',u'2000-01',u'2000-02',u'2000-03',u'2000-04',u'2000-05',u'2000-06',u'2000-09',u'2000-10',u'2000-12',u'2001-01',u'2001-02',u'2001-03',u'2001-04',u'2001-05',u'2001-06',u'2001-07',u'2001-08',u'2001-10',u'2001-01',u'2001-01',u'2001-01',u'2001-01',u'2001-01',u'2001-011',u'2001-12',u'2002-01',u'2002-02',u'2002-03',u'2002-04',u'2002-05',u'2002-06',u'2002-07',u'2002-08',u'2002-09',u'2002-10',u'2002-11',u'2002-12',…],dtype='object确定,然后需要
set_索引
所有不是df=df set_索引日期的列(['RegionID','RegionName','State','Metro','CountyName','SizeRank'].
df=df.set_index(['CountyName','SizeRank'])needdf=df.set_index(['RegionID','RegionName','State','Metro','CountyName','SizeRank'))
Q1 (204400+207000+209800)
#remove header=None for first row in csv as columns
df = pd.read_csv('City_Zhvi_AllHomes.csv')
df = df.set_index(['CountyName','SizeRank'])
#with real data set index of all not dates columns
#df = df.set_index(['RegionID', 'RegionName', 'State', 'Metro', 'CountyName', 'SizeRank'])
df.columns = pd.to_datetime(df.columns).to_period('M')
print (df)
2000-01 2000-02 2000-03 2000-04
CountyName SizeRank
Queens 1 NaN NaN NaN NaN
Los Angeles 2 204400.0 207000.0 209800.0 212300.0
Cook 3 136800.0 138300.0 140100.0 141900.0
Philadelphia 4 52700.0 53100.0 53200.0 53400.0
print (df.columns)
PeriodIndex(['2000-01', '2000-02', '2000-03', '2000-04'], dtype='period[M]', freq='M')
df = df.resample('Q', axis=1).sum()
print (df)
2000Q1 2000Q2
CountyName SizeRank
Queens 1 NaN NaN
Los Angeles 2 621200.0 212300.0
Cook 3 415200.0 141900.0
Philadelphia 4 159000.0 53400.0