我有几个列表可能包含在DataFrame的索引/列中找不到的元素。我想使用这些索引获取特定的行/列,以便在索引/列中找不到列表中的元素,然后忽略它。
df1 = pd.DataFrame({"x":[1, 2, 3, 4, 5],
"y":[3, 4, 5, 6, 7]},
index=['a', 'b', 'c', 'd', 'e'])
df1.loc[['c', 'd', 'e', 'f'], ['x', 'z']]
我想得到:
x
c 3.0
d 4.0
e 5.0
而不是:
x z
c 3.0 NaN
d 4.0 NaN
e 5.0 NaN
f NaN NaN
答案 0 :(得分:3)
我认为你需要Index.intersection
:
var yesterdayIndicators = (from id in Indicator
where id.Ticker == symbol
&& id.Date_Time.Date == prevDateTime
select id).ToList();
答案 1 :(得分:1)
我相信你可以删除包含所有空值的行和列。
>>> df1.loc[['c', 'd', 'e', 'f'], ['x', 'z']].dropna(how='all').dropna(how='all', axis=1)
x
c 3
d 4
e 5
答案 2 :(得分:1)
使用filter
功能:
row_index = ['c', 'd', 'e', 'f']
col_index = ['x', 'z']
df1.filter(row_index, axis=0).filter(col_index, axis=1)
# x
#c 3
#d 4
#e 5