首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >np.where()返回MemoryError

np.where()返回MemoryError
EN

Stack Overflow用户
提问于 2021-03-20 19:48:23
回答 1查看 40关注 0票数 1

我假设np.where()的数量是问题所在,因为去掉1将允许函数工作。我不知道除了if else之外还有其他方法来编辑名称。我想这会更快。我也想到了映射,但我不确定如何返回没有更改的名称。任何帮助理解这个期望结果的最佳实践的人都会非常感激!

代码语言:javascript
复制
# Takes names from various dataframes and websites and makes one name outcome
# 
def player_name_filter(name):

name = name.str.title().str.replace('.', ' ', regex=True).str.strip()

name = np.where(name=='A J  Greer','A.J. Greer',
       np.where(name=='Alexis Lafreni?Re','Alexis Lafreniere',
       np.where(name=='Alexis Lafrenière','Alexis Lafreniere', 
       np.where(name=='Alexandre Carrier', 'Alex Carrier',  
       np.where(name=='Alexander Burmistrov', 'Alex Burmistrov',
       np.where(name=='Alexander Petrovic', 'Alex Petrovic',
       np.where(name=='Alexander Edler', 'Alex Edler',
       np.where(name=='Alexander Kerfoot', 'Alex Kerfoot',
       np.where(name=='Alexander Nylander', 'Alex Nylander',
       np.where(name=='Alexander Radulov', 'Alex Radulov',
       np.where(name=='Alexander Steen', 'Alex Steen',
       np.where(name=='Alexandre Texier', 'Alex Texier',
       np.where(name=='Alexander Volkov', 'Alex Volkov',
       np.where(name=='Alexander Wennberg', 'Alex Wennberg',
       np.where(name=='Aaron Volpatt', 'Aaron Volpatti',
       np.where(name=='Adam Cracknel', 'Adam Cracknell',
       np.where(name=='Anze Kopitar', 'GOAT',
       np.where(name=='B J  Crombeen', 'B.J. Crombeen',
       np.where(name=='C J  Smith', 'C.J. Smith',
       np.where(name=='Christopher Tanev', 'Chris Tanev',
       np.where(name=='Colin White', 'Colin White2',
       np.where(name=='Charlie Mcavoy', 'Charlie McAvoy',
       np.where(name=='Casey Desmith', 'Casey DeSmith',
       np.where(name=='Cal Petersen', 'Calvin Petersen',
       np.where(name=='Calvin De Haan', 'Calvin de Haan', 
       np.where(name=='Cj Suess', 'C.J. Suess',                     
       np.where(name=='Dj King', 'D.J. King',
       np.where(name=='Erik Gustafsson', 'Erik Gustafsson2',
       np.where(name=='Evgenii Dadonov', 'Evgeny Dadonov',
       np.where(name=='Jake McCabe', 'Jake McCabe', 
       np.where(name=='Jacob Macdonald', 'Jacob MacDonald',  
       np.where(name=='Jacob de la Rose', 'Jacob De La Rose',   
       np.where(name=='Jean-Francois Berube', 'J-F Berube',
       np.where(name=='Joseph Labate', 'Joseph LaBate',                    
       np.where(name=='J T  Brown', 'J.T. Brown',
       np.where(name=='J T  Compher', 'J.T. Compher',                     
       np.where(name=='J C  Beaudin', 'J.C. Beaudin',
       np.where(name=='J T  Miller', 'J.T. Miller',  
       np.where(name=='Jc Lipon', 'J.C. Lipon',
       np.where(name=='Jt Wyman', 'J.T. Wyman',
       np.where(name=='Martin St  Louis', 'Martin St. Louis', 
       np.where(name=='Matthew Benning', 'Matt Benning',
       np.where(name=='Maxime Comtois', 'Max Comtois',
       np.where(name=='Max VÃf©ronneau', 'Max Veronneau',
       np.where(name=='Max Lajoie', 'Maxime Lajoie',
       np.where(name=='Michael Matheson', 'Mike Matheson',
       np.where(name=='Mikhail Vorobyov', 'Mikhail Vorobyev',
       np.where(name=='Mitchell Marner', 'Mitch Marner',
       np.where(name=='Nicholas Caamano', 'Nick Caamano',
       np.where(name=='Nicholas Suzuki', 'Nick Suzuki',
       np.where(name=='P A  Parenteau', 'P.A. Parenteau',
       np.where(name=='P J  Axelsson', 'P.J. Axelsson',
       np.where(name=='P K  Subban', 'P.K. Subban',
       np.where(name=='R J  Umberger', 'R.J. Umberger',
       np.where(name=='Samuel Blais', 'Sammy Blais',
       np.where(name=='Steve Santini', 'Steven Santini',
       np.where(name=='Theodor Blueger', 'Teddy Blueger',
       np.where(name=='Tim Gettinger', 'Timothy Gettinger',
       np.where(name=='Tj Brodie', 'T.J. Brodie',
       np.where(name=='Tj Brennan', 'T.J. Brennan',
       np.where(name=='T  J Brennan', 'T.J. Brennan',
       np.where(name=='Tj Tynan', 'T.J. Tynan',
       np.where(name=='T J  Galiardi', 'T.J. Galiardi',
       np.where(name=='T J  Hensick', 'T.J. Hensick',
       np.where(name=='T J  Oshie', 'T.J. Oshie',                    
       np.where(name=='Tony Deangelo', 'Tony DeAngelo',
       np.where(name=='Anthony Deangelo', 'Tony DeAngelo',
       np.where(name=='Vincent Hinostroza', 'Vinnie Hinostroza',
       np.where(name=='Vitali Abramov', 'Vitaly Abramov',
       np.where(name=="Logan O'Connor", "Logan O'Connor",
       np.where(name=='Kurtis MacDermid', 'Kurtis MacDermid',
       np.where(name=='Zachary Senyshyn', 'Zach Senyshyn',
       np.where(name=='Christopher DiDomenico', 'Chris DiDomenico',
       np.where(name=='Michael Cammalleri', 'Mike Cammalleri',
       np.where(name=='Nicholas Shore', 'Nick Shore',
       np.where(name=='Pat Maroon', 'Patrick Maroon',
       np.where(name=='Ryan Macinnis', 'Ryan MacInnis',
       np.where(name=='Tony Deangelo', 'Tony DeAngelo',
       np.where(name=='Mackenzie Maceachern', 'Mackenzie MacEachern',
       np.where(name=='Alex Debrincat', 'Alex DeBrincat',
       np.where(name=='Samuel Montembeault', 'Sam Montembeault',
       np.where(name=='Danny Taylor', 'Daniel Taylor',
       np.where(name=='Pierre-Alexandr Parenteau', 'PA Parenteau',
       np.where(name=='Christian  Wolanin', 'Christian Wolanin',
       np.where(name=="Dylan Sikura ", "Dylan Sikura",
       np.where(name=='Troy Terry ', 'Troy Terry',  
       np.where(name=='Viktor Antipin', 'Victor Antipin', 
       np.where(name=='Zach Aston-reese', 'Zach Aston-Reese',
       np.where(name=='Max Lagace', 'Maxime Lagace',
        name)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

return name
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-20 20:02:09

当您处理两个以上的选择时,请使用np.select

代码语言:javascript
复制
conditions = [df['name'] == 'A J  Greer', df['name'] == 'Alexis Lafrenière', ...]
choices = ['A.J. Greer', 'Alexis Lafreniere', ...]

df.select(conditions, choices, default = df.name)

您还可以将字典用作查找表

代码语言:javascript
复制
name_table = {
    'A J  Greer': 'A.J. Greer',
    'Alexis Lafrenière': 'Alexis Lafreniere', 
    'B J  Crombeen': 'B.J. Crombeen',
    # and so on
}

df['name'].str.title().apply(lambda x: name_table.get(x, x))

# or

def player_name_filter(dataf , column_name):
    dataf[column_name] = dataf[column_name].str.title().map(name_table)
    return dataf

df = df.pipe(player_name_filter, column_name='name')
# problem NaN for players not in the tables 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66721197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档