python - 为 pandas 数据框中逗号分隔字符串中的每个项目添加 +1

标签 python pandas

我有一个 pandas 数据框,其结构如下:

|    ID    |     Start    |    Stop    |
________________________________________
|     1    |    1,2,3,4   |  5,6,7,7   |
|     2    |    100,101   |  200,201   |

对于数据框中的每一行,我想为“开始”列中的每个值添加 1。 “开始”列的数据类型是“object”。

所需的输出如下所示:

|    ID    |     Start    |    Stop    |
________________________________________
|     1    |    2,3,4,5   |  5,6,7,7   |
|     2    |    101,102   |  200,201   |

我已经尝试了以下方法(以及以下方法的许多版本),但收到错误消息,TypeError:无法连接“str”和“int”对象,:

 df['test'] = [str(x + 1) for x in df['Start']]

我尝试将列转换为 int,但得到“以 10 为基数的 long() 的文字无效:'101,102':

df['test'] = [int(x) + 1 for x in df['start'].astype(int)]

我尝试使用 str.split() 将字段转换为列表,然后将每个项目转换为整数:

提前致谢!

最佳答案

df['Start'] 是整个系列,因此您必须迭代它,然后然后分割:

new_series = []
for x in df['Start']:
    value_list = []
    for y in x.rstrip(',').split(','):
        value_list.append(str(int(y) + 1))
    new_series.append(','.join(value_list))
df['test'] = new_series

关于python - 为 pandas 数据框中逗号分隔字符串中的每个项目添加 +1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32237898/

相关文章:

python - 使用 pandas 将单列编码为多列

python - 在使用 ffmpeg 处理时流式传输 mkv 文件

python - 在 Django 中检索表单字段属性

python - 在 python 中揭开 super 的神秘面纱?

python - 如何修复对象图像无法正确加载的问题

python - 在 Pandas 数据框列中查找最长字符串的长度

python - 为什么 groupby 不能在索引级别上正确求和

python - 通过 pandas 数据框和 numpy 进行迭代

python - 如何导入带有 "occasional"引号的 csv(R 和/或 Pandas)?

python - 如何更改 Pandas 中多列的数据类型