我面临的问题是,我只需要分布在不同行和列上的原始数据帧的子集。例如。:
# My Original dataframe
import pandas as pd
dfTest = pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]])
Output:
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
有人可以帮忙吗?
Use 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)