如何将Pandas DataFrame的ID_Produto列按行转换为列表?
将Pandas Series列的逗号分隔字符串转为列表
需求说明
把DataFrame中ID_Produto列(每行是逗号分隔的字符串)的内容转换为列表形式。
原始数据
import pandas as pd data = { 'ID_Pedido': [1, 2, 3], 'ID_Produto': ['AC1,CD2,UE4', 'AC1,OP3,KJ7', 'CD2,UE4'] } df = pd.DataFrame(data) print("原始数据:") print(df) print("\n列的类型:") print(type(df['ID_Produto']))
输出:
原始数据: ID_Pedido ID_Produto 0 1 AC1,CD2,UE4 1 2 AC1,OP3,KJ7 2 3 CD2,UE4 列的类型: <class 'pandas.core.series.Series'>
解决方法
直接使用Pandas的str.split(',')方法,该方法会将每行的逗号分隔字符串分割为列表:
# 转换列元素为列表 df['ID_Produto'] = df['ID_Produto'].str.split(',') print("转换后数据:") print(df) print("\n单个元素的类型:") print(type(df['ID_Produto'][0]))
输出:
转换后数据: ID_Pedido ID_Produto 0 1 [AC1, CD2, UE4] 1 2 [AC1, OP3, KJ7] 2 3 [CD2, UE4] 单个元素的类型: <class 'list'>
补充说明
- 上述方法得到的是实际的列表类型,方便后续对列表元素做筛选、统计等操作。
- 如果需要让列表显示为带单引号的字符串形式(如
['AC1','CD2','UE4']),可以结合apply和repr方法,但不推荐这种方式(会把列表转为字符串,失去列表的可操作性):df['ID_Produto'] = df['ID_Produto'].str.split(',').apply(repr)
内容的提问来源于stack exchange,提问作者Douglas Oliveira
相关产品推荐
相关产品推荐

