input csv file screenshot

我的Pandas 数据框有一列(序列),其逗号分隔的字符串值如下所示:

col_1,col_2,col_3
abc,123,49
bcd,234,"39,48"

我想把这个COL3转换成一个整数列表.我试过了

df["col_3"]=[[i] for i in df["col_3"]]

但我最终得到了这样的结果

col_1,col_2,col_3
abc,123,['49']
bcd,234,"['39,48']"

所需的输出为

col_1,col_2,col_3
abc,123,[49]
bcd,234,[39,48]

我还希望它更快,因为我将对100k行的批次使用它. 有人能给出一个解决方案吗?提亚

    col_1       col_2    col_3
0   F18  9994      495
1   C35  9995  390,483
3   F60  9998  497,468

推荐答案

你可以使用pandas.Series.str.split来理解列表:

df['col_3'] = [[int(e) for e in x.split(",")] for x in df['col_3']]

# Output :

print(df)

  col_1  col_2     col_3
0   abc    123      [49]
1   bcd    234  [39, 48]

print(type(df.loc[0, 'col_3'][0]))
int

# Edit :

如果您需要将df保存为.csv,则所有整数列表之间总是有双引号(长度为>;1),因为列表的元素由comma分隔,默认分隔符pandas.DataFrame.to_csv也是comma.在这些列表中使用双引号来转义逗号.因此,要go 掉双引号,您必须 Select 另一个分隔符,如tab:

df.to_csv(r'path_to_your_new_csv', sep='\t')

Python-3.x相关问答推荐

Pyvis和Networkx:如何根据源或目标使 node colored颜色 不同

我无法直接在 VSCode 中运行该程序,但可以使用 VScode 中的终端运行它

基于Pandas列动态创建分箱,以使观测值数量或计数占总计数的1%.

将自动文本转换为 DataFrame

裁剪复数以解决 exp 中的溢出错误

python2和python3中的列表生成器

使用 OpenCV 从图像中减go 一条线

过滤查询集和Q运算符的不同值

Pytorch:图像标签

为什么不切换到 Python 3.x?

django.core.exceptions.ImproperlyConfigured

简单的 get/post 请求在 python 3 中被阻止,但在 python 2 中没有

Python 3 变量名中接受哪些 Unicode 符号?

如何模拟 Django 模型对象(及其方法)?

作为函数对象属性的 __kwdefaults__ 有什么用?

为什么 2to3 将 mydict.keys() 更改为 list(mydict.keys())?

根据条件过滤元组列表

命名参数可以与 Python 枚举一起使用吗?

如何判断列表中的所有项目是否都是字符串

注册 Celery 基于类的任务