所以,我有一个14列的DataFrame(带标题)。我想在一个索引处获取这个DataFrame的一行的值,该索引是一个介于0和DataFrame最大长度之间的随机整数,提取这些值,然后将它们添加到一个具有相同标题的新DataFrame。数据框看起来像这样:
我尝试过使用.iloc的各种组合,但由于某种原因,产生的DataFrame只不过是列标题,而不是DataFrame本身的实际数值。最好的办法是什么?谢谢
jbose2ul1#
假设你有一个类似这样的dummy dataframe:
df = pd.DataFrame({'A': ['foo', 'foo', 'foo', 'bar', 'bar', 'bar'], 'B': ['one', 'one', 'two', 'two', 'one', 'one'], 'C': [1, 2, 3, 4, 5, 6], 'D': [7, 8, 9, 10, 11, 12]})
让我们创建一个emplty df:
df2 = pd.DataFrame(columns=df.columns)
如果你想从df到df2取一行,那么就这样做:
df2 = df2.append(df.iloc[1], ignore_index=True) # if append is deprecated you can do this: df2 = pd.concat([df2, df.iloc[[1]]], axis=0, ignore_index=True)
如果你想要一个随机的,你可以这样做:
df2 = df2.append(df.sample(1), ignore_index=True) #or df2 = pd.concat([df2, df.sample(1)], ignore_index=True)
waxmsbnn2#
假设你的dataframe被命名为df,你应该能够使用iloc查询一个特定的行,* 例如 *:
df
iloc
df.iloc[[i]]
其中i是你的随机数。然后,您可以将此数据框与新的数据框df_new连接起来。
i
df_new
for i in np.random.randint(0,10,size=10): if df_new.empty: df_new = df.iloc[[i]] else: df_new = pd.concat([df_new, df.iloc[[i]]])
2条答案
按热度按时间jbose2ul1#
假设你有一个类似这样的dummy dataframe:
让我们创建一个emplty df:
如果你想从df到df2取一行,那么就这样做:
如果你想要一个随机的,你可以这样做:
waxmsbnn2#
假设你的dataframe被命名为
df
,你应该能够使用iloc
查询一个特定的行,* 例如 *:其中
i
是你的随机数。然后,您可以将此数据框与新的数据框
df_new
连接起来。