我正在处理多个数据框。每个数据框包含尺寸为 67 行 x 215 列的数字数据。为了从每个数据框中选择数据,还有一个具有相同维度并包含布尔值的数据框。 我无法检索满足真实条件的单元格值。示例代码如下。
import pandas as pd
import numpy as np
#initialize a dataframe
df = pd.DataFrame(
[[21, 72, 67.1],
[23, 78, 69.5],
[32, 74, 56.6],
[52, 54, 76.2]],
columns=['a', 'b', 'c'])
print('DataFrame\n----------\n', df)
print('\nDataFrame datatypes :\n', df.dtypes)
#convert pandas dataframe to numpy array
arr = df.to_numpy()
print('\nNumpy Array\n----------\n', arr)
print('\nNumpy Array Datatype :', arr.dtype)
k = np.random.randint(250,275,(4,3))
print(k)
kt = pd.DataFrame(k)
print(kt)
kb = kt>260
print(kb)
km = kb.to_numpy()
print(km)
xt = arr(km)
print(xt)
我衷心感谢您花时间解决问题。 谢谢。
答案 0 :(得分:0)
您正在调用名为 arr 的数组(因为它是 numpy.ndarray 并且它不是一个函数,因此您无法调用它)而不是在其中传递您的布尔掩码“km”。所以,
而不是使用:-
xt = arr(km)
使用:-
xt = arr[km]
现在如果你打印 xt
你会得到:-
array([21. , 23. , 56.6, 52. , 54. ])