gpt4 book ai didi

python - 有没有一种快速的方法可以从 pandas DataFrame 的一列中的所有行中删除特定字符?

转载 作者:太空宇宙 更新时间:2023-11-04 09:30:26 26 4
gpt4 key购买 nike

我正在尝试从列中删除日期并将其设为新列。我写了一个函数来做它,但我不确定如何将它应用到 pandas 框架中。

这是原始 df:

ID                       var1   var2 
abc_20190503_xyz 100 10
fds_20190503_fnk 234 32
ree_20190503_fds 555 23

我写了下面的函数:

def strip_date(pid,file_date):
pid=list(pid)
pid.remove(file_date)
return ''.join(pid)

file_date='20190503'
org_df['NewID']=strip_date(org_df['ID'],file_date)
org_df

问题:

  1. 这给我错误信息:list.remove(x): x not in list
  2. 我目前的 def 似乎只删除了字符串中的一个 file_date;如果有多个,我必须重新剥离。例如如果 id 是 'abc_20190503_xyz_20190503',它只会去掉第一个。有更好的解决方案吗?

期望的输出:

New ID             ID                    var1   var2 
abc__xyz abc_20190503_xyz 100 10
fds__fnk fds_20190503_fnk 234 32
ree__fds ree_20190503_fds 555 23

另外,我想使用 New ID 作为索引。

最佳答案

您可以使用 Series.str.replace使用 regex 从您的 ID 列中提取所有数字。

df['New_ID'] = df['ID'].str.replace('([0-9]+)', '')

print(df)
ID var1 var2 New_ID
0 abc_20190503_xyz 100 10 abc__xyz
1 fds_20190503_fnk 234 32 fds__fnk
2 ree_20190503_fds 555 23 ree__fds

关于python - 有没有一种快速的方法可以从 pandas DataFrame 的一列中的所有行中删除特定字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55975063/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com