如何从列表中的项目中删除元素?
通常当我从列表中删除某些内容时,我会这样做:
df = [1,2,3,'name']
df.remove('name') #output is [1,2,3]
但是如果我的参赛作品不是常规的话会怎么样,例如:
df = [1,2,3, 'name 123']
我想摆脱" _123"?
答案 0 :(得分:1)
我没有抓住你想要做的事情,但假设有你提供给我们的清单:
df = [1,2,3,'name 123']
并且您只想删除' 123'在特定的位置,您可以这样做:
df[3] = df[3].replace(" 123","")
答案 1 :(得分:1)
最简单的选择是列表理解 - 类似这样:
[str(x).replace('123', '') for x in df]
(在所有项目结束时修剪'123'。
对于更复杂的模式匹配,您可能需要使用正则表达式。
答案 2 :(得分:1)
您可以使用str.split()功能执行此操作。它允许您使用指定的分隔符将字符串分隔成数组。例如,"1 4 5 hello".split(" ")
会返回["1", "4", "5", "hello"]
因此,只需获得"name"
即可:
df[3] = df[3].split(" ")[0]
因为df[3].split(" ")
返回["name", "123"]
,其第0个索引是您想要的"name"
。
答案 3 :(得分:1)
列表理解与dayfirst=True
相结合是一种方式:
df['accepted_date3'] = pd.to_datetime(df['accepted_date'], dayfirst=True)
print (df)
accepted_date accepted_date3
0 2017-01-02 2017-01-02
1 07-08-2017 2017-08-07
2 20-03-2017 2017-03-20
3 2017-01-04 2017-01-04