【发布时间】:2018-07-24 09:43:21
【问题描述】:
我有一个约 1,000 行和约 10,000 列的非常稀疏的 Pandas DataFrame。大多数行仅包含 20-100 个非零值。我现在想在每行中选择任意 10 个随机非零值并将它们的值设置为 0。
这是我的第一次(非常不友好的)尝试:
for i in range(df.shape[0]):
row = df.iloc[i]
nonZeros = np.where(row > 0)[0]
rand = np.random.choice(nonZeros, 10)
for j in rand:
df.iloc[i, j] = 0
【问题讨论】:
-
到目前为止你尝试了什么?请向我们展示您的代码。
-
@running.t 在我的问题中添加了代码
-
使用数据帧的
apply方法将函数应用于数据帧的每一行(axis=1)。