Pandas столбец, содержащий списки - перебирать каждую проблему списка - PullRequest
1 голос
/ 05 апреля 2020

Допустим, у меня есть фрейм данных, такой как

df = pd.DataFrame({'a': [1,2,3], 'b': [['this', 'is', 'a', 'sentence'],['we', 'like', 'pizza'],['hello', 'world']]})

И я хочу перебрать списки в столбце b и сделать что-то вроде заглавных букв каждой буквы. Я могу сделать что-то вроде

for row in df['b']:
    row = [i.upper() for i in row]
    print(row)
# ['THIS', 'IS', 'A', 'SENTENCE']
# ['WE', 'LIKE', 'PIZZA']
# ['HELLO', 'WORLD']

, но это не заменяет списки в этом столбце. Я думал, что переназначаю значения строки в для l oop, но, очевидно, это не так, когда я печатаю кадр данных после этого:

print(df)
#    a                        b
# 0  1  [this, is, a, sentence]
# 1  2        [we, like, pizza]
# 2  3           [hello, world]

Каков правильный способ сделать это? Спасибо!

Ответы [ 2 ]

1 голос
/ 05 апреля 2020

Я не знаю, правильно ли это делать, но df.b = df.b.apply(lambda x: [i.upper() for i in x]) должно работать.

1 голос
/ 05 апреля 2020

вы можете использовать pandas .DataFrame.apply :

 df['b'] =  df['b'].apply(lambda x: list(map(str.upper, x)))
 df

выход:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...