获取数据帧中的值,而不是布尔值

2024-03-28 11:08:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个计算距离的数据框,如下所示

x_y_data = pd.read_csv("x_y_points400_labeled_20pnts_csv.csv")
x = x_y_data.loc[:,'x']
y = x_y_data.loc[:,'y']
xs=x.to_numpy()
ys=y.to_numpy()
result = pd.DataFrame(np.sqrt((xs[:, None] - xs)**2 + (ys[:, None] - ys)**2))

我得到所有距离的结果

           0          1          2   ...         10         11         12
0    0.000000  16.132750  33.039985  ...  17.628989  27.273213  20.898938
1   16.132750   0.000000  16.912458  ...  16.658800  17.480346  25.375308
2   33.039985  16.912458   0.000000  ...  27.985766  19.625398  37.343842
3   10.140420  25.301309  41.896450  ...  20.173079  32.241763  18.523634
4    9.368331   9.228014  25.210365  ...  10.518585  18.039020  17.464249

现在,当我只想获得小于12的数据帧的值时 (通过简单地添加result2=result<12)我获得布尔值表

 result2:
           0      1      2      3      4   ...     8      9      10     11     12
0    True  False  False   True   True  ...  False  False  False  False  False
1   False   True  False  False   True  ...  False  False  False  False  False
2   False  False   True  False  False  ...   True  False  False  False  False
3    True  False  False   True  False  ...  False   True  False  False  False
4    True   True  False  False   True  ...  False  False   True  False  False

我只想要小于12且不等于零的值。你能帮忙吗


Tags: csvto数据numpynonefalsetrue距离
2条回答

请试一试

result[result < 12].fillna('Morethan12')

result[result < 12].unstack().fillna('Morethan12')

只需给出条件以显示基于0<result2<12的值

相关问题 更多 >