如何将pandas DataFrame的text列嵌套元组内的所有字符串转为小写
Pandas DataFrame嵌套字符串批量转小写实现方法
你给出的测试数据中,text列的每一行都是由字符串组成的元组,要将所有嵌套字符串统一转为小写,可参考以下两种实现方案:
方案1:apply方法(可读性高)
通过apply遍历每一行元组,再对元组内的每个字符串调用lower()方法即可,实现代码如下:
import pandas as pd # 构造测试DataFrame test = {'text': [ ('tom', 'tom', 'TOM is a good guy.'), ('Nick','nick', 'Is that Nick?') ]}, {'text': [ ('juli', 'juli', 'Tom likes juli so much.'), ('tony', 'tony', 'Steve and Tony listen in as well.') ]} df_test = pd.DataFrame(test) # 执行小写转换 df_test['text'] = df_test['text'].apply(lambda x: tuple(s.lower() for s in x))
方案2:列表推导式(性能更优)
如果处理的数据量较大,列表推导式的执行效率会比apply更高,写法如下:
df_test['text'] = [tuple(s.lower() for s in item) for item in df_test['text']]
鲁棒性优化
如果元组内可能存在非字符串类型的元素(比如空值、数字),可以增加类型判断避免触发属性报错:
# 适配含非字符串元素的场景 df_test['text'] = df_test['text'].apply(lambda x: tuple(s.lower() if isinstance(s, str) else s for s in x))
内容的提问来源于stack exchange,提问作者Alina
相关产品推荐
相关产品推荐

