Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 删除列表数据框列的第二个最后一个元素_Python_Python 3.x_Pandas_List_Dataframe - Fatal编程技术网

Python 删除列表数据框列的第二个最后一个元素

Python 删除列表数据框列的第二个最后一个元素,python,python-3.x,pandas,list,dataframe,Python,Python 3.x,Pandas,List,Dataframe,我有这个问题,我希望能够删除列表的最后一个元素,但保留所有其他元素 我有一个初始数据帧: Traceroute_1 ------------------------------------------------------------------- ['10.0.11.10', '10.0.1.2', '10.0.12.10', '10.0.12.100'] ['10.0.11.10', '10.0.1.6', '10.0.1.18', '10.0.13.10', '1

我有这个问题,我希望能够删除列表的最后一个元素,但保留所有其他元素

我有一个初始数据帧:

    Traceroute_1
-------------------------------------------------------------------
    ['10.0.11.10', '10.0.1.2', '10.0.12.10', '10.0.12.100']
    ['10.0.11.10', '10.0.1.6', '10.0.1.18', '10.0.13.10', '10.0.13.100']
    ['10.0.11.10', '10.0.1.6', '10.0.1.18', '10.0.1.26', '10.0.14.10', '10.0.14.100']
    ['10.0.11.10', '10.0.1.6', '10.0.1.14', '10.0.4.6', '10.0.2.5', '10.0.22.10', '10.0.22.100']
    ['10.0.11.10', '10.0.1.6', '10.0.1.14', '10.0.6.6', '10.0.2.9', '10.0.23.10', '10.0.23.100']
    ['10.0.11.10', '10.0.1.6', '10.0.1.14', '10.0.4.6', '10.0.2.18', '10.0.24.10', '10.0.24.100']
    ['10.0.11.10', '10.0.1.6', '10.0.1.14', '10.0.6.6', '10.0.2.23', '10.0.25.10', '10.0.25.100']
    ['10.0.11.10', '10.0.1.6', '10.0.1.14', '10.0.6.6', '10.0.7.6', '10.0.3.5', '10.0.33.10', '10.0.33.100']
我想在另一个名为“Traceroute_2”的专栏中得到的结果是:

如您所见,每个列表的所有倒数第二个元素都已删除,但所有其他值仍保留

我试过这个:

dfDef1["Traceroute_2"] = [el[:-2] for el in dfDef1["Traceroute_1"]]
但结果是:

Traceroute_2
----------------------
['10.0.11.10', '10.0.1.2']
['10.0.11.10', '10.0.1.6', '10.0.1.18']
['10.0.11.10', '10.0.1.6', '10.0.1.18', '10.0.1.26']
['10.0.11.10', '10.0.1.6', '10.0.1.14', '10.0.4.6']
['10.0.11.10', '10.0.1.6', '10.0.1.14', '10.0.6.6', '10.0.2.9']
['10.0.11.10', '10.0.1.6', '10.0.1.14', '10.0.4.6', '10.0.2.18']
['10.0.11.10', '10.0.1.6', '10.0.1.14', '10.0.6.6', '10.0.2.23']
['10.0.11.10', '10.0.1.6', '10.0.1.14', '10.0.6.6', '10.0.7.6', '10.0.3.5']
这是我的代码:

import pandas as pd

dfDef1 = pd.DataFrame({'Traceroute_1':
    [
           ['10.0.11.10', '10.0.1.2', '10.0.12.10', '10.0.12.100'],
           ['10.0.11.10', '10.0.1.6', '10.0.1.18', '10.0.13.10', '10.0.13.100'],
           ['10.0.11.10', '10.0.1.6', '10.0.1.18', '10.0.1.26', '10.0.14.10', '10.0.14.100'],
           ['10.0.11.10', '10.0.1.6', '10.0.1.14', '10.0.4.6', '10.0.2.5', '10.0.22.10', '10.0.22.100'],
           ['10.0.11.10', '10.0.1.6', '10.0.1.14', '10.0.6.6', '10.0.2.9', '10.0.23.10', '10.0.23.100'],
           ['10.0.11.10', '10.0.1.6', '10.0.1.14', '10.0.4.6', '10.0.2.18', '10.0.24.10', '10.0.24.100'],
           ['10.0.11.10', '10.0.1.6', '10.0.1.14', '10.0.6.6', '10.0.2.23', '10.0.25.10', '10.0.25.100'],
           ['10.0.11.10', '10.0.1.6', '10.0.1.14', '10.0.6.6', '10.0.7.6', '10.0.3.5', '10.0.33.10', '10.0.33.100']
    ]
})

dfDef1["Traceroute_2"] = [el[:-2] for el in dfDef1["Traceroute_1"]]

如何做到这一点?

尝试使用
series.str
切片:

dfDef1['Traceroute_2_new'] = (dfDef1['Traceroute_1'].str[:-2] 
                             + dfDef1['Traceroute_1'].str[-1:])

尝试使用
series.str
切片:

dfDef1['Traceroute_2_new'] = (dfDef1['Traceroute_1'].str[:-2] 
                             + dfDef1['Traceroute_1'].str[-1:])

在脚本中,您将选择所有元素,直到从最后一个元素算起的第三个元素

也许通过对脚本的这一小改动,您可以:

dfDef1["Traceroute_2"] = [el[:-2].extend(el[-1]) for el in dfDef1["Traceroute_1"]]

在脚本中,您将选择所有元素,直到从最后一个元素算起的第三个元素

也许通过对脚本的这一小改动,您可以:

dfDef1["Traceroute_2"] = [el[:-2].extend(el[-1]) for el in dfDef1["Traceroute_1"]]

el[:-2]将从开始到最后一个元素(排除)的所有内容都保留下来

尝试:


el[:-2]将从开始到最后一个元素(排除)的所有内容都保留下来

尝试:


有趣的是,
series.str
切片可用于对字符串列表进行切片,而不仅仅是对字符串进行切片。我找不到任何说明这种用法的文件。你能告诉我关于这种用法的在线文档或指南吗?谢谢@SeaBean的文档说这只是一个向量化的方法,你将如何正常使用str方法,所以
“ABC”[-2://code>返回
BC
['a','B','C'][-2://code>返回
['B','C']
,想象一下这是怎么回事,但作为一个系列非常聪明的用法!谢谢你的解释!:-)有趣的是,
series.str
切片可用于对字符串列表进行切片,而不仅仅是对字符串进行切片。我找不到任何说明这种用法的文件。你能告诉我关于这种用法的在线文档或指南吗?谢谢@SeaBean的文档说这只是一个向量化的方法,你将如何正常使用str方法,所以
“ABC”[-2://code>返回
BC
['a','B','C'][-2://code>返回
['B','C']
,想象一下这是怎么回事,但作为一个系列非常聪明的用法!谢谢你的解释!:-)