python - 使用另一个数据框作为列引用的数据框查找
问题描述
我有 3 列 (L,M,N) 和 n 行的 DF A:
L M N
1 2 3
4 5 6
7 8 9
DF B 有 2 列(X 和 Y)和 n 行:
X Y
'L' NaN
'M' 'N'
'N' 'L'
我想要一个有 n 行的 DF,例如:
1 NaN
5 6
9 7
基本上,DF B 中的每一行决定了 DF A 中的哪些列要保留
TIA
解决方案
有点hacky,但一种使用方式pandas.Series.reset_index
:
def getloc(index):
try:
return df.loc[index[0], index[1]]
except KeyError:
return np.nan
new_df = df2.apply(lambda x: x.reset_index().apply(tuple, axis=1)).applymap(getloc)
print(new_df)
输出:
X Y
0 1 NaN
1 5 6.0
2 9 7.0
推荐阅读
- vb.net - 如何从 vb.net 中的列值填充的组合框中删除重复项?
- google-apps-script - Google表格脚本:查找早于目标日期的第一个日期
- python - 在字符串中添加函数
- react-native - 如何在本机反应中使 FlatList 在 ScrollView 内可滚动?
- python - 如何复制和粘贴值直到特定列在python数据框中结束
- java - 如果选择了不可编辑的文本字段,如何让其接受键盘输入?
- haskell - 是否有用于创建 [Maybe a] 模拟的语法,但有种类(* -> *)
- ios - iOS 14.5 和 14.6 中的错误,代码在 14.2 中运行良好......如何开始解决这个问题?
- java - 使用 log4j2 访问 org.slf4j.MDC?
- c++ - 如何在 OpenCV 中右移(C++ 中的“>>”运算符)?(似乎只有 &、|、^ 等,但没有 >> 运算符)