zoukankan      html  css  js  c++  java
  • Pandas一个需求:存在一个列表,需要在一个DataFrame中取到以该列表为索引的数据

     需求:Pandas一个需求:存在一个列表,需要在一个DataFrame中取到以该列表为索引的数据

    这里有一个坑,

    In [103]: s = pd.Series([1, 2, 3])
    
    In [104]: s
    Out[104]: 
    0    1
    1    2
    2    3
    dtype: int64

    当loc[]中的列表包含于S的索引中的话,没有问题

    In [105]: s.loc[[1, 2]]
    Out[105]: 
    1    2
    2    3
    dtype: int64


    In [4]: s.loc[[1, 2, 3]]

    Passing list-likes to .loc with any non-matching elements will raise
    KeyError in the future, you can use .reindex() as an alternative.
    
    See the documentation here:
    https://pandas.pydata.org/pandas-docs/stable/indexing.html#deprecate-loc-reindex-listlike
    

     由于 3不在s的索引中,所以引发了一个错误。

    解决办法:

    将s先用reindex() 接收需索引的列表, 这样就会将s索引中没有的值,填充为Nan

    In [106]: s.reindex([1, 2, 3])
    Out[106]: 
    1    2.0
    2    3.0
    3    NaN
    dtype: float64

    另外:如果你只想取到给定list和DataFrame索引中交集的值,那么就可以用一下方式:
    In [107]: labels = [1, 2, 3]
    
    In [108]: s.loc[s.index.intersection(labels)]
    Out[108]: 
    1    2
    2    3
    dtype: int64


    同时需要注意:
     
     
    你的时间用在哪里决定你成为一个什么样的人。
  • 相关阅读:
    ZOJ 1001 A + B Problem
    献给那些心软的人!!
    将表格的数据插入另一个表格
    把链接 显示为方框
    【ibus】设置ibus输入法(pinyin & sunpinyin)
    [Mongo] How to Install Mongo on Debian(不要安装)
    [Sinatra、Mongo] Mongo
    Sinatra+SQLite3+DataMapper
    [sinatra] Sinatra再入门
    [slim] Slim
  • 原文地址:https://www.cnblogs.com/yc3110/p/14802890.html
Copyright © 2011-2022 走看看