如何从列表字符串数据框的列中提取值

2024-09-25 02:27:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从列表中提取值,以便对字符串执行一些操作

Distance                           TGR Grade                  TGR1
[342m, 342m, 530m, 342m]         [M, M, RW, RW]            [1, 1, 7, 1]
[390m, 390m, 390m, 390m,450]    [M, 7, 6G, X45, X67]       [1, 2, 4, 5, 5]
[]                                    []                      []

我需要这张表格的一张干净的df

    Distance                     TGRGrade             TGR1
342m,342m,530m,342m          M,M,RW,RW            1,1,7,1
390m,390m,390m,390m,450      M,7,6G,X45,X67       1,2,4,5,5

我尝试了以下功能:

df.columns = [''.join(i.split()) for i in df.columns]
df = df.applymap(lambda x: ''.join(x.strip('\[').strip('\]').split()))

df = df.replace('[', '')
df = df.replace(']', '')

我的第一次尝试导致了这个错误

AttributeError: 'list' object has no attribute 'strip'

检查单个列中的值会导致这种情况

df['TGR1']

    0           [1, 1, 7, 1, 1, 8, 8, 1, 1, 8]
    1           [1, 2, 4, 5, 5, 1, 2, 7, 6, 8]
    2     [6, 1, 4, 4, 7, 1, 7, 1, 8, 3, 4, 5]
    3     [1, 7, 4, 4, 3, 2, 1, 1, 2, 2, 2, 1]
    4     [3, 4, 5, 2, 1, 8, 5, 2, 3, 6, 5, 3]

Tags: columns字符串df列表replacedistancesplitgrade
2条回答

您应该签出^{}

df.explode(['Distance', 'TGR Grade', 'TGR1'])

尝试:

df = df.apply(lambda x: x.apply(lambda x: ','.join(map(str, x))))

输出:

                  Distance       TGR Grade       TGR1
0      342m,342m,530m,342m       M,M,RW,RW    1,1,7,1
1  390m,390m,390m,390m,450  M,7,6G,X45,X67  1,2,4,5,5
2          

                                      

相关问题 更多 >