【发布时间】:2019-07-25 12:18:56
【问题描述】:
假设我有以下 Pandas DataFrame:
df = pd.DataFrame({
'a': [1, 2, 3],
'b': [4, 5, 6],
'c': [7, 8, 9]
})
a b c
0 1 4 7
1 2 5 8
2 3 6 9
我想生成一个新的pandas.Series,以便从 DataFrame 中的随机列中逐行选择该系列的值。因此,可能的输出将是系列:
0 7
1 2
2 9
dtype: int64
(在第 0 行中它随机选择了“c”,在第 1 行中它随机选择了“a”,在第 2 行中它再次随机选择了“c”)。
我知道这可以通过遍历行并使用random.choice 来选择每一行来完成,但是遍历行不仅性能差,而且可以说是“unpandonic”。此外, df.sample(axis=1) 会选择整个列,所以它们都将从同一列中选择,这不是我想要的。有没有更好的方法来使用矢量化 pandas 方法来做到这一点?
【问题讨论】:
标签: python pandas dataframe random