首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >元组迭代矢量化

元组迭代矢量化
EN

Stack Overflow用户
提问于 2019-03-27 17:54:29
回答 1查看 168关注 0票数 0

我有一个熊猫代码,那就是迭代元组,我试图将它矢量化。

如果是这种类型的元组,我将迭代的元组列表:

代码语言:javascript
复制
[('Morden', 35672, 'Morden Hall Park, Surrey'),
 ('Morden', 73995, 'Morden Hall Park, Surrey'),
 ('Newbridge', 120968, 'Newbridge, Midlothian'),
 ('Stroud', 127611, 'Stroud, Gloucestershire')]

工作的元组迭代代码是:

代码语言:javascript
复制
for tuple_ in result_tuples:
    listing_looking_ins1.loc[:,'looking_in']\ 
    [(listing_looking_ins1.listing_id ==tuple_[1]) &
     (listing_looking_ins1.looking_in ==tuple_[0])] = tuple_[2]

我试图编写一个func,以便与apply方法一起使用,但它不起作用:

代码语言:javascript
复制
result_tuples_df = pd.DataFrame(result_tuples)

def replace_ (row):
    row.loc[:,'looking_in'][(listing_looking_ins1.listing_id\ 
    \==result_tuples_df[1]) &
    (listing_looking_ins1.looking_in\==result_tuples_df[0])] \
     = result_tuples_df[2]

listing_looking_ins1.apply(replace_, axis=1)

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-27 18:24:33

您可以将元组列表转换为DataFrame,并将其与原始代码合并:

代码语言:javascript
复制
result_tuples_df = pd.DataFrame(result_tuples,
                                columns=['listing_id', 'looking_in', 'result'])

df = listing_looking_ins1.merge(result_tuples_df)

print(df)

输出:

代码语言:javascript
复制
  listing_id  looking_in                    result
0     Morden       35672  Morden Hall Park, Surrey
1     Morden       73995  Morden Hall Park, Surrey
2  Newbridge      120968     Newbridge, Midlothian
3     Stroud      127611   Stroud, Gloucestershire

然后,如果您想在looking_in列中获得结果:

代码语言:javascript
复制
df.drop('looking_in', 1).rename(columns={'result': 'looking_in'})

输出:

代码语言:javascript
复制
  listing_id                looking_in
0     Morden  Morden Hall Park, Surrey
1     Morden  Morden Hall Park, Surrey
2  Newbridge     Newbridge, Midlothian
3     Stroud   Stroud, Gloucestershire

P.S.在您的代码中,您使用:

代码语言:javascript
复制
listing_looking_ins1.loc[:,'looking_in'][...] = ...

这是在DataFrame副本上设置值。请参考How to deal with SettingWithCopyWarning in Pandas?,了解为什么和如何避免这样做。

由于您询问了矢量化和使用应用程序,您可能还想看看这个关于不同操作性能的答案https://stackoverflow.com/a/24871316/6792743

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55383687

复制
相关文章

相似问题

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