Как напечатать имя столбца в строке Pandas DataFrame? - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть этот DataFrame:

 df = pd.DataFrame({'day':['1/1/2017','1/2/2017','1/3/2017','1/4/2017','1/5/2017','1/6/2017','1/7/2017'],
                     'event':['Rain','Sunny','Snow','Snow','Rain','Sunny','Sunny'],
                   'temperature': [32, 35, 28,24,32,31,''],'windspeed':[6,7,2,7,4,2,'']})
 df

enter image description here

Я пытаюсь найти заголовки для отсутствующих значений в индексе 6:

for x in df.loc[6]:
if x == '':
    print(df.columns.values)
else: print(x)

enter image description here

Я попытался найти, и самое близкое, что я мог получить, это то, что я имею сейчас.В конечном итоге я пытаюсь вставить эти значения в фрейм данных: температура = 34, скорость ветра = 8.

Но первым делом я просто попытался построить оператор цикла / if, который говорит, что если x == '' & [COLUMN_NAME] == 'температура' ... и вот тут я застрял.Я новичок в питоне, просто пытаюсь выучить панд.Мне нужно только вернуть столбец, в котором я работаю, а не список всех столбцов.

Ответы [ 3 ]

0 голосов
/ 26 сентября 2018

Изменено из вашего кода:

for i,x in enumerate(df.loc[6]):
    if x == '':
        print(df.columns[i])
    else: print(x)
0 голосов
/ 26 сентября 2018

Я бы использовал понимание списка следующим образом:

listOfNulls = [ind  for ind in df.loc[6].index if df.loc[6][ind] == '']

, и когда я печатаю listOfNulls, я получаю:

>>>> print(listOfNulls)
Out: ['temperature', 'windspeed']

Ключ здесь в том, что он понимает, что df.loc [6] - это панда Series, которая имеет индексы.Мы используем значения Series, чтобы получить индексы.

0 голосов
/ 26 сентября 2018

Есть лучшие способы сделать это, но это работает.

for col, val in df.loc[6].iteritems():
    if not val: # this is the same as saying "if val == '':"
        print(col)
    else:
        print(val)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...