3つの列にわたって単純な平均操作を実行しています。私は毎月のデータを四半期平均に変換しています。私はここでPythonを使用した単純な平均操作でカーネルが動作しない
2000.q1
20
にそれを変換したい
2000.1 2000.2 2000.3....
18 15 27
は、私がこれまで持っているものです::
デフconvert_housing_data_to_quarters(): '' '住宅を変換したデータは次のようになりますデータを四半期に分割し、データフレームに平均値 を返します。このデータフレームは2000q1〜2016q3の カラムのデータフレームである必要があり、["State"、 "RegionName"]の形のマルチインデックス を持つ必要があります。
Note: Quarters are defined in the assignment description, they are
not arbitrary three month periods.
The resulting dataframe should have 67 columns, and 10,730 rows.
'''
# read in the zillow housing data
zillow_df = pd.read_csv('City_Zhvi_AllHomes.csv')
print(zillow_df.iloc[1,1])
print(len(zillow_df))
# slice from 2000q1 to 2016q3
print(zillow_df.columns)
print(zillow_df.columns[6:51])
zillow_df.drop(zillow_df.columns[6:51],axis=1,inplace=True)
# generate quarterly average
y = 2000
q = 1
for i in range(67):
y_q = str(y)+'q'+str(q)
#print(y_q)
print(zillow_df.columns[6+(i)*3])
print(zillow_df[zillow_df.columns[6+(i)*3]])
zillow_df[y_q]=(zillow_df[zillow_df.columns[6+(i)*3]]+zillow_df[zillow_df.columns[6+1+(i)*3]]+zillow_df[zillow_df.columns[6+2+(i)*3]])/3
q=q+1
if q==5:
q=1
y=y+1
return zillow_df.head()
私のコードは正しいと思いますが、毎回ipythonノートブックで実行します。それは、カーネルが死んだと言う。なぜ私は分からない。
この変更が必要であり、どのようなカーネルが死ぬことを引き起こしなぜあなたは説明してもらえます。 –
難しい質問ですが、最も単純な答えは、パンダのループを使用することは最適化されておらず、実際には遅いです。それで、記憶を使い果たしてしまうかもしれない?多分問題のあるデータですか?多分もっと大きなデータですか?しかし、最善の方法は、 'resample'のようなベクトル化されたソリューションを使用することです。 – jezrael