【问题标题】:Access entries in pandas data frame using a list of indices使用索引列表访问 pandas 数据框中的条目
【发布时间】:2018-02-07 18:10:18
【问题描述】:

我面临的问题是,我只需要分布在不同行和列上的原始数据框的一个子集。例如:

# My Original dataframe
import pandas as pd
dfTest = pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]])

输出:

   0  1  2
0  1  2  3
1  4  5  6
2  7  8  9

我可以提供一个列表,其中包含我想要的值所在的行和列索引:

array_indices = [[0,2],[1,0],[2,1]]

我想要的输出是一个系列:

3
4
8

谁能帮忙?

【问题讨论】:

    标签: python pandas indexing subset indices


    【解决方案1】:

    使用pd.DataFrame.lookup

    dfTest.lookup(*zip(*array_indices))
    
    array([3, 4, 8])
    

    您可以将其包装在 pd.Series 构造函数中

    pd.Series(dfTest.lookup(*zip(*array_indices)))
    
    0    3
    1    4
    2    8
    dtype: int64
    

    轻微变体

    i, j = np.array(array_indices).T
    dfTest.values[i, j]
    
    array([3, 4, 8])
    

    同上

    pd.Series(dfTest.values[i, j])
    
    0    3
    1    4
    2    8
    dtype: int64
    

    【讨论】:

      猜你喜欢
      • 2018-03-03
      • 2016-09-28
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      • 2012-02-18
      • 2022-06-29
      • 2021-09-14
      相关资源
      最近更新 更多