如何操作Pandas DataFrame列表格式列的指定元素并拼接?
Pandas处理列表格式列的两步操作
需求说明
对DataFrame中以列表格式存储的列完成两项操作:
- 将列表第2个位置(索引1)的
모름替换为999 - 将修改后的列表用下划线
_拼接为字符串
完整实现代码
import pandas as pd # 初始化数据 df = pd.DataFrame({'index':[21144,64182,64184,64197,64198], '농약':['5. 방법/수단 : 농약_바스타_글루포시네이트암모늄' , '5. 방법/수단 : 농약_바스타_글루포시네이트암모늄', '5. 방법/수단 : 농약_확타_글루포시네이트암모늄' , '5. 방법/수단 : 농약_모름_글루포시네이트', '5. 방법/수단 : 농약_바로바로_글루포시네이트']}) df.set_index('index',inplace=True) # 拆分字符串为列表 pes_df = df['농약'].str.split('_',expand=False) # 定义修改列表的函数 def adjust_list(lst): # 检查列表长度足够且第2个元素是'모름'(去除首尾空格避免匹配失败) if len(lst) >= 2 and lst[1].strip() == '모름': lst[1] = '999' return lst # 应用修改函数 pes_df_modified = pes_df.apply(adjust_list) # 将列表拼接为下划线分隔的字符串 pes_df_joined = pes_df_modified.str.join('_') # 将结果添加回原DataFrame df['농약_수정'] = pes_df_joined # 查看结果 print("修改后的列表列:") print(pes_df_modified) print("\n拼接后的字符串列:") print(df['농약_수정'])
关键步骤说明
- 拆分字符串为列表:使用
str.split('_', expand=False)将原字符串列拆分为列表格式的Series - 修改列表元素:通过
apply调用自定义函数,针对每个列表的第2个元素(索引1)判断替换,先去除元素首尾空格避免匹配失败 - 拼接为字符串:用
str.join('_')快速将列表元素拼接为下划线分隔的字符串
示例输出
修改后的列表列片段:
21144 [5. 방법/수단 : 농약, 바스타, 글루포시네이트암모늄 ] 64197 [5. 방법/수단 : 농약, 999, 글루포시네이트 ] 64205 [5. 방법/수단 : 농약, 999, 비펜트린 ]
拼接后的字符串列片段:
21144 5. 방법/수단 : 농약_바스타_글루포시네이트암모늄 64197 5. 방법/수단 : 농약_999_글루포시네이트 64205 5. 방법/수단 : 농약_999_비펜트린 Name: 농약_수정, dtype: object
内容的提问来源于stack exchange,提问作者Chung Joshua
相关产品推荐
相关产品推荐

