J'ai un dataframe appelé staticData qui ressemble à ceci:
narrow_sector broad_sector country exchange \
unique_id
BBG.MTAA.STM.S Semiconductors Technology CH MTAA
BBG.MTAA.CNHI.S Machinery-Diversified Industrial GB MTAA
BBG.MTAA.FCA.S Auto Manufacturers Consumer Cyclical GB MTAA
BBG.MTAA.A2A.S Electric Utilities IT MTAA
BBG.MTAA.ACE.S Electric Utilities IT MTAA
Je cherche à parcourir la ligne de données ligne par ligne en sélectionnant deux bits d'informations, l'index (unique_id) et l'échange. J'ai un problème d'itération sur l'index. Veuillez voir mon code:
for i, row in staticData.iterrows():
unique_id = staticData.ix[i]
exchange = row['exchange']
J'ai essayé unique_id = row ['unique_id'], mais je n'arrive pas à le faire fonctionner ...
J'essaie de revenir dire pour row1
unique_id = BBG.MTAA.STM.S
exchange = MTAA
Vous voulez ce qui suit:
for i, row in staticData.iterrows():
unique_id = i
exchange = row['exchange']
je serai la valeur de l'étiquette d'index
Exemple:
In [57]:
df = pd.DataFrame(np.random.randn(5,3), index=list('abcde'), columns=list('fgh'))
df
Out[57]:
f g h
a -0.900835 -0.913989 -0.624536
b -0.854091 0.286364 -0.869539
c 1.090133 -0.771667 1.258372
d -0.721753 -0.329211 0.479295
e 0.520786 0.273722 0.824172
In [62]:
for i, row in df.iterrows():
print('index: ', i, 'col g:', row['g'])
index: a col g: -0.913988608754
index: b col g: 0.286363847188
index: c col g: -0.771666520074
index: d col g: -0.329211394286
index: e col g: 0.273721527592
Peut-être une manière plus pandasienne?
staticData.apply((lambda x: (x.name, x['exchange'])), axis=1)