【问题标题】:appending pandas rows with the nearest point of each row in the dataframe将熊猫行附加到数据框中每行的最近点
【发布时间】:2021-07-23 16:44:18
【问题描述】:

我有一个包含 150 行和 4 列的数据框,我希望为每一行附加一个来自数据框的向量,该向量与所有其他点(行)的距离最小。结果将是一个形状为 150x8 的数据框。

[concat pandas dataframe][1]
`pd.concat([df1,df2], axis=1, join="inner")`

Df2 需要以 df1 重新排列的方式重新排列,即 df2 的每一行都具有 df1 等效项的最小距离,而不是像图片中那样随机排列。 https://i.stack.imgur.com/gjyE2.png

【问题讨论】:

  • 你可以做一个asof merge
  • 你能发布一个示例数据和你尝试的代码吗?
  • 请提供示例数据和您尝试的代码以及详细信息

标签: python pandas


【解决方案1】:
from scipy.spatial import distance
m=[]
for i in range(len(df1)):
    u=[]
    for j in range(len(df1)):
        u.append(distance.euclidean(df1.iloc[i],df1.iloc[j]))
    m.append(u.index(sorted(u)[1]))
pd.concat([df1,df1.iloc[m].reset_index(drop=True)], axis=1, join="inner")```

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-22
    • 2020-08-01
    • 2023-02-01
    • 2022-01-06
    • 2018-09-29
    • 2021-04-27
    • 2019-01-14
    • 2021-12-07
    相关资源
    最近更新 更多