首页 > 解决方案 > 将字符串(逗号分隔)转换为 Pandas Dataframe 中的 int 列表

问题描述

我有一个数据框,其中有一列包含整数,有时还有一个字符串,其中包含多个用逗号分隔的数字(如“1234567、89012345、65425774”)。

我想将该字符串转换为整数列表,以便更轻松地搜索特定数字。

In [1]: import pandas as pd

In [2]: raw_input  = "1111111111 666 10069759 9695011 9536391,2261003 9312405 15542804 15956127 8409044 9663061 7104622 3273441 3336156 15542815 15434808 3486259 8469323 7124395 15956159 3319393 15956184
      : 15956217 13035908 3299927"

In [3]: df = pd.DataFrame({'x':raw_input.split()})

In [4]: df.head()
Out[4]:
                 x
0       1111111111
1              666
2         10069759
3          9695011
4  9536391,2261003

这就是我的专栏的样子

标签: pythonpandasdataframe

解决方案


由于您的列包含字符串和整数,您可能需要这样的内容:

def to_integers(column_value):
    if not isinstance(column_value, int):
        return [int(v) for v in column_value.split(',')]
    else:
        return column_value

df.loc[:, 'column_name'] = df.loc[:, 'column_name'].apply(to_integers)

推荐阅读