【问题标题】:How to convert strings in a Pandas Dataframe to a list or an array of characters?如何将 Pandas Dataframe 中的字符串转换为列表或字符数组?
【发布时间】:2020-09-03 00:23:50
【问题描述】:

我有一个名为 data 的数据框,其中的一列包含字符串。我想从字符串中提取字符,因为我的目标是对它们进行一次性编码并使其可用于分类。包含字符串的列存储在 predictors 中,如下所示:

predictors = pd.DataFrame(data, columns = ['Sequence']).to_numpy()

打印出来的结果是:

[['DKWL']
 ['FCHN']
 ['KDQP']
 ...
 ['SGHC']
 ['KIGT']
 ['PGPT']]

,而我的目标是获得类似的东西:

[['D', 'K', 'W', 'L']
 ...
 ['P', 'G', 'P, 'T']]

据我了解,这是一种更适合单热编码的形式。

我已经尝试过How do I convert string characters into a list? 或How to create a list with the characters of a string? 这里提供的答案,但没有成功。

具体来说,我也试过这个:

for row in predictors:
    row = list(row)

但结果与预测变量的形式相同,即

 [['DKWL']
 ['FCHN']
 ['KDQP']
 ...
 ['SGHC']
 ['KIGT']
 ['PGPT']]

【问题讨论】:

    标签: python string pandas list one-hot-encoding


    【解决方案1】:

    您可以使用list 将值转换为字母,然后在必要时将其转换为array:

    predictors = np.array([list(x) for x in data])
    

    或转换列predictors['Sequence']:

    a = np.array([list(x) for x in predictors['Sequence']])
    print(a)
    [['D' 'K' 'W' 'L']
     ['F' 'C' 'H' 'N']
     ['K' 'D' 'Q' 'P']
     ['S' 'G' 'H' 'C']
     ['K' 'I' 'G' 'T']
     ['P' 'G' 'P' 'T']]
    

    系列使用:

    s = predictors['Sequence'].apply(list)
    print(s)
    0    [D, K, W, L]
    1    [F, C, H, N]
    2    [K, D, Q, P]
    3    [S, G, H, C]
    4    [K, I, G, T]
    5    [P, G, P, T]
    Name: Sequence, dtype: object
    

    【讨论】:

      猜你喜欢
      • 2020-11-20
      • 2018-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-31
      • 2020-05-22
      • 2021-04-14
      • 2021-03-24
      相关资源
      最近更新 更多