从另一个数据框向 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
随机抓取一行
- 注意:这个returns一个单行数据框
- 创建一个没有随机行的临时数据框
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])
所以我正在尝试根据随机生成的行对数据框进行排序。下面列出了数据框。我想做的是随机选择一行,我将其称为数据框中的质心,然后使小于数据的行位于其上方,大于质心的行在它下面。但是我不确定该怎么做,我已经给出了下面的数据框和数据以及我用来比较行的函数。我通过对行中的值求和并将其与质心的总和进行比较来确定该行是小于还是大于。
有什么好的方法吗?
如有任何建议,我们将不胜感激。
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
随机抓取一行- 注意:这个returns一个单行数据框
- 创建一个没有随机行的临时数据框
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])