如何移除pandas DataFrame列表类型列元素中的换行符\n
解决方案
你可以结合pandas的apply()方法和列表推导式实现需求,不需要引入正则,直接调用字符串原生的replace方法替换换行符即可,实现代码如下:
import pandas as pd # 示例数据 df = pd.DataFrame({ 'tags': {0: 1, 1: 1, 2: 1, 3: 1, 4: 1}, 'elements': { 0: ['\n☒', '\nANNUAL REPORT PURSUANT TO SECTION 13 OR 15(d) OF THE SECURITIES EXCHANGE ACT OF 1934 '], 1: ['', ''], 2: ['\n', '\nFor the Fiscal Year Ended June 30, 2020'], 3: ['\n', '\n'], 4: ['\n', '\nOR'] } }) # 核心处理逻辑:替换所有字符串内的\n df['elements'] = df['elements'].apply(lambda x: [s.replace('\n', '') for s in x])
实现说明
apply()会遍历elements列的每一行值(也就是每一个列表对象)- 内层列表推导式遍历列表中的每个字符串,将所有
\n替换为空字符 - 最后将处理后的列表重新赋值给原列即可完成全量更新
如果之前用嵌套循环没有生效,一般是因为你只修改了循环过程中的临时变量,没有将修改后的结果重新赋值回DataFrame对应的位置,上述写法是pandas处理非标量列的常规方案,性能和稳定性都优于手动嵌套循环。
内容的提问来源于stack exchange,提问作者geds133
相关产品推荐
相关产品推荐

