2015-06-25 6 views
0

У меня есть pandas DataFrame, преобразованный из JSON и извлеченный столбцы и строки, которые я хочу (хорошо экспортируется в CSV).итерация выбора по df pandas

Однако, я хочу пойти несколько уровней в строки. Я хочу, чтобы перебирать выбор по моим индексированных данных, используя что-нибудь вроде:

df.likes[0]['count'] 

Мой DataFrame называется df и likes является столбцом. Я хочу получить доступ к значению «count» по всей строке, распечатав его обратно в ту же позицию и столбец DataFrame.

Вот данные:

>>> df_likes.ix[0:94] 
0  {u'count': 1685, u'anchorStr': u'1225924030067... 
1  {u'count': 1944, u'anchorStr': u'1225924022404... 
2  {u'count': 2586, u'anchorStr': u'1225924194077... 
3  {u'count': 3075, u'anchorStr': u'1225924298746... 
4  {u'count': 3263, u'anchorStr': u'1225924358464... 
5  {u'count': 3390, u'anchorStr': u'1225924289589... 
6  {u'count': 4306, u'anchorStr': u'1225924191359... 
7  {u'count': 751, u'anchorStr': u'12259244210391... 
8  {u'count': 2425, u'anchorStr': u'1225924419831... 
9  {u'count': 2628, u'anchorStr': u'1225924362763... 
10 {u'count': 1521, u'anchorStr': u'1225924213802... 
+0

Что именно вы подразумеваете под «печатью в том же положении и столбце»? – albert

+0

Не могли бы вы, если возможно, предоставить короткий фрагмент вашего входного JSON-файла? Я не уверен, что если вы импортировали свои данные правильно, так как ваш DataFrame (который даже может быть серией) выглядит странным, просто содержащим эти «субтитры» вашего JSON-файла. – albert

ответ

0

Предполагая, что вы хотите получить доступ к значению ячейки с помощью его индекса и столбца, следующий пример кода выполняет работу в соответствии с docs:

#!/usr/bin/env python3 
# coding: utf-8 

from pandas import DataFrame 
from numpy.random import randn 

df = DataFrame(randn(8, 4), columns=['A', 'B', 'C', 'D']) 

#access column with name 'A' and index 6 
print(df['A'].ix[6]) 
0

Возможно, вы так подумали?

anchorStr  ucount 
0 1225924030067 1685 
1 1225924022404 1944 
2 1225924194077 2586 
3 1225924298746 3075 
4 1225924358464 3263 
5 1225924289589 3390 
6 1225924191359 4306 
7 1225924421039  751 
8 1225924419831 2425 
9 1225924362763 2628 
10 1225924213802 1521 

Если это вы думаете, этот код выполняет эту работу.

from pandas import DataFrame as df 

data = [ 
{u'count': 1685, u'anchorStr': u'1225924030067'}, 
{u'count': 1944, u'anchorStr': u'1225924022404'}, 
{u'count': 2586, u'anchorStr': u'1225924194077'}, 
{u'count': 3075, u'anchorStr': u'1225924298746'}, 
{u'count': 3263, u'anchorStr': u'1225924358464'}, 
{u'count': 3390, u'anchorStr': u'1225924289589'}, 
{u'count': 4306, u'anchorStr': u'1225924191359'}, 
{u'count': 751, u'anchorStr': u'1225924421039'}, 
{u'count': 2425, u'anchorStr': u'1225924419831'}, 
{u'count': 2628, u'anchorStr': u'1225924362763'}, 
... 
{u'count': 1521, u'anchorStr': u'1225924213802'}] 

c = [c['count'] for c in d] 
a = [a['anchorStr'] for a in d] 

d = df({'ucount': c, 'anchorStr': a}) 

print d 

Рад был помочь! Не стесняйтесь принять мой ответ, если вы считаете, что это было полезно для вас. :-)

Смежные вопросы