Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从数据框访问项目,并使用相同的方法创建一个新项目_Python_Pandas_Dataframe - Fatal编程技术网

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'])need
df=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