0

如何将每行包含字符串列表的多列转换为包含整数列表的行?

从这个状态

index    column_1     column_2    column_3    column_4  column_5   column_6
0      ['1','1']     ['7','6']    ['1','3']      7        2       ['5','1']

到这个状态

index column_1     column_2    column_3    column_4  column_5  column_6
0      [1,1]       [7 , 6 ]    [ 1 , 3 ]       7        2       [5 , 1]

我尝试了很多解决方案,唯一有效的解决方案是下面的解决方案,但仅针对单个列

df['column_1'].map(lambda a: map(int, a))
4

1 回答 1

0

这是一个将该数据帧转换为二维列表、执行必要的整数转换并转换回数据帧的解决方案:

import pandas as pd

df = pd.DataFrame({'column_1':[['1','1']], 'column_2':[['7','6']], 'column_3':[['1','3']],
                   'column_4':[7], 'column_5':[2], 'column_6':[['5','1']]})

cols = df.columns.array
lst = df.to_numpy().tolist()
for row in lst:
    for col in row:
        if type(col) == list:
            for i, numstring in enumerate(col):
                col[i] = int(numstring)

df = pd.DataFrame(lst, columns= cols)
print(df)

#output:
  column_1 column_2 column_3  column_4  column_5 column_6
0   [1, 1]   [7, 6]   [1, 3]         7         2   [5, 1]
于 2021-02-17T22:05:24.737 回答