繁体   English   中英

从另一个数据帧向 Pandas 数据帧添加行

[英]Adding rows to a Pandas dataframe from another dataframe

所以我试图根据随机生成的行对数据框进行排序。 下面列出了数据框。 我想要做的是随机选择一行,我将在数据框中将其称为质心,然后使其小于数据的行位于其上方,而大于质心的行在它下面。 但是我不知道该怎么做,我已经给出了下面的数据框和数据以及我用来比较行的函数。 我通过将行中的值相加并将其与质心的总和进行比较来确定行是小于还是大于。

有没有好的方法可以做到这一点?

任何建议表示赞赏。

def compareRows(arr1, arr2):
    arr1 = sum(arr1)
    arr2 = sum(arr2)
    return arr1 > arr2
data = np.array(pd.read_csv('https://raw.githubusercontent.com/gsprint23/cpts215/master/progassignments/files/cancer.csv',  header=None))
    data = data.T
    #print(data)
    df = pd.DataFrame(data[1:], columns=data[0], dtype=float).T

如果您需要更多信息,请告诉我

感谢您阅读

  • 使用pd.DataFrame.sample随机抓取一行
    • 注意:这将返回一个单行数据帧
  • 创建一个没有随机行的临时数据帧d
  • 创建一系列布尔真值,以确定哪些其他行大于我们的随机行
  • 将我们的临时数据帧子集不大于,附加我们的随机行,附加临时数据帧的子集,其中大于我们的随机行

sampled = df.sample(1)
d = df.drop(sampled.index)
gt = d.apply(compareRows, 1, arr2=sampled.squeeze())

pd.concat([d[~gt], sampled, d[gt]])
# d[~gt].append(sampled).append(d[gt])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM