python - 如何从列表字符串pandas数据帧的列中提取值

标签 python pandas dataframe

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

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”对象没有属性“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]

最佳答案

您应该查看pandas.explode :

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

关于python - 如何从列表字符串pandas数据帧的列中提取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69415254/

相关文章:

python - 导入在 Python shell 中工作,但在从文件运行时不起作用

python - Python 中的两个子图(matplotlib)

python - 如何将 python 字典转换为 pandas 数据框

python - 统一码编码错误 : 'ascii' codec can't encode character u'\ufffd' in position 3: ordinal not in range(128)

python - 输入文件路径并传递给字符串文字

python - 如何在文件中的行和列位置插入文本?

python - 管道的疏通和重新连接

PyCharm 中的 Pandas : Where does it display the boxplot?

python - 从一列列表中的每个列表中获取第一个元素

python - 根据 2 个条件从数据框中删除行