2017-07-30 5 views
1

私はpandasデータフレームのデータを持っています。データフレーム名にアクセス

for i,row in stock.iterrows(): 
    pprint(row) 

それは私がrow['Data']として3.25000にアクセスすることができ、この

Data    3.25000 
Name: 2000-01-03 00:00:00, dtype: float64 

などのデータを返し、しかしrow['Name']は使用できません。

2000-01-03 00:00:00にアクセスするにはどうすればいいですか?

indexとデータフレームを使用しました。

Nameは、indexと同じ意味です。

答えて

2

Nameはインデックス名です。

あなたはインデックス値のためiが必要です

for i,row in stock.iterrows(): 
    pprint(row) 
    #index 
    pprint(i) 

サンプル:

stock = pd.DataFrame({'Data':[3.5, 5.6]}, index=pd.date_range('2000-01-03', periods=2)) 
stock.index.name = 'Name' 
print (stock) 
      Data 
Name    
2000-01-03 3.5 
2000-01-04 5.6 

print (stock.index.name) 
Name 

print (stock.index) 
DatetimeIndex(['2000-01-03', '2000-01-04'], dtype='datetime64[ns]', name='Name', freq='D') 

for i,row in stock.iterrows(): 
    pprint(row) 
    #index 
    pprint(i) 

Data 3.5 
Name: 2000-01-03 00:00:00, dtype: float64 
Timestamp('2000-01-03 00:00:00', freq='D') 
Data 5.6 
Name: 2000-01-04 00:00:00, dtype: float64 
Timestamp('2000-01-04 00:00:00', freq='D') 

index名がreset_index後に列名に変換されます。

stock = stock.reset_index() 
print (stock) 
     Name Data 
0 2000-01-03 3.5 
1 2000-01-04 5.6 

print (stock.index.name) 
None 

print (stock.index) 
RangeIndex(start=0, stop=2, step=1) 

print (stock.columns) 
Index(['Name', 'Data'], dtype='object') 
+0

おかげで非常に多く、私のようにする必要がありパンダのリファレンスをもう一度読んでください。あなたの例は非常に役に立ちます! – whitebear

+0

@whitebear - うれしいことがあります。いい日! – jezrael

関連する問題