假设我有一个数据框,例如
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']
,但不会替换该列中的列表。我以为我是在for循环中重新分配行值,但是很显然,在此之后打印数据框时我不是:
print(df)
# a b
# 0 1 [this, is, a, sentence]
# 1 2 [we, like, pizza]
# 2 3 [hello, world]
执行此操作的正确方法是什么?谢谢!
答案 0 :(得分:1)
答案 1 :(得分:1)
我不知道这样做是否正确,但是df.b = df.b.apply(lambda x: [i.upper() for i in x])
应该可以工作。