Pandas'tan bir `DataFrame'im var:
import pandas as pd
inp = [{'c1':10, 'c2':100}, {'c1':11,'c2':110}, {'c1':12,'c2':120}]
df = pd.DataFrame(inp)
print df
Çıktı:
c1 c2
0 10 100
1 11 110
2 12 120
Şimdi bu çerçevenin satırları üzerinde yineleme yapmak istiyorum. Her satır için sütunların adına göre öğelerine (hücrelerdeki değerler) erişebilmek istiyorum. Örneğin:
for row in df.rows:
print row['c1'], row['c2']
Bunu pandalarda yapmak mümkün mü?
Bunu buldum benzer soru. Ancak bana ihtiyacım olan cevabı vermiyor. Örneğin, orada kullanılması öneriliyor:
for date, row in df.T.iteritems():
veya
for row in df.iterrows():
Ancak row
nesnesinin ne olduğunu ve onunla nasıl çalışabileceğimi anlamıyorum.
DataFrame.iterrows hem dizin hem de satır veren bir üreteçtir
import pandas as pd
import numpy as np
df = pd.DataFrame([{'c1':10, 'c2':100}, {'c1':11,'c2':110}, {'c1':12,'c2':120}])
<!- ->
for index, row in df.iterrows():
print(row['c1'], row['c2'])
Output:
10 100
11 110
12 120
df.iterrows()`]1 kullanmalısınız. Seri nesnelerinin oluşturulması gerektiğinden, satır satır yineleme özellikle verimli değildir.
Satırlar üzerinde yineleme yapmak ve bir işlev için birden fazla sütuna erişmek için df.apply()
işlevini de kullanabilirsiniz.
def valuation_formula(x, y):
return x * y * 0.5
df['price'] = df.apply(lambda row: valuation_formula(row['x'], row['y']), axis=1)