gpt4 book ai didi

python - 我如何删除 Pandas 中的过滤器数据(数据处理)

转载 作者:太空宇宙 更新时间:2023-11-04 05:08:52 28 4
gpt4 key购买 nike

数据与我在 Pandas 系列:

data = ["1. stock1 (1991)",  
"3. stock13 (1993)",
"5. stock19 (1999)",
"89. stock105 (2001)"] # pandas Series

我需要过滤每个字符串并保存为

s.no    sdata       year  
1 stock1 1991
3 stock13 1993
5 stock19 1999
89 stock105 2001

我试过用

data = stock["Rank & Title"].str.split(".")

最佳答案

你可以试试str.extract使用正则表达式的方法:

data = ["1. stock1 (1991)",  
"3. stock13 (1993)",
"5. stock19 (1999)",
"89. stock105 (2001)"]

s = pd.Series(data)

s.str.extract("(?P<sno>\d+)\.\s(?P<sdata>\w+)\s\((?P<year>\d+)\)", expand=True)

# sno sdata year
#0 1 stock1 1991
#1 3 stock13 1993
#2 5 stock19 1999
#3 89 stock105 2001

正则表达式 上出现故障,(?P<sno>\d+)\.\s(?P<sdata>\w+)\s\((?P<year>\d+)\)可以简化为(\d+)\.\s(\w+)\s\((\d+)\)不命名捕获的组(使用 ?P<name> 完成); (\d+) , (\w+)(\d+)分别捕获 s.nostocknameyear


或者您可能只想在空白处进行拆分,然后根据实际数据的样子清理列:

(s.str.split(" ", expand=True)
# strip period and parenthesis
.apply(lambda col: col.str.strip(".()"))
# rename columns
.rename(columns={0: "s.no", 1: "sdata", 2: "year"}))

# s.no sdata year
#0 1 stock1 1991
#1 3 stock13 1993
#2 5 stock19 1999
#3 89 stock105 2001

关于python - 我如何删除 Pandas 中的过滤器数据(数据处理),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43592137/

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