python - 如何在DataFrame中将K个随机列值设置为空?
问题描述
import pandas as pd
df = pd.DataFrame( { 'A': [1,2,3,4],
'B': [10,20,30,40],
'C': [20,40,60,80]
}, )
df['A'] = ''
print(df)
我想将A列的K个值设置为空值,这些K值应该是随机选择的。A 列的那些 len(df)-K 值不会受到影响。我编写了这个函数来生成随机行索引,然后如何将这些索引的df的行值设置为空?
def random_rows(K=2, df):
col_length = df.shape[1]
row_indexes = [i for i in range(col_length)]
if col_length<K:
K = col_length
selected_row_indexes = random.sample(row_indexes, K)
return selected_row_indexes
解决方案
您可以使用sample
来获取随机行并loc
修改它们:
df.loc[df['A'].sample(n=2).index, 'A'] = '' # or whatever value you want
推荐阅读
- json - JSONObject 错误解析包含 javascript 的 JSON
- java - 计时器可以显示在上一行,我可以在cmd中输入下一行吗?(java)
- excel - 如果另一列中有单元格匹配,Excel公式将返回另一列的值
- ios - Objective-c 中的 NSDate 日期给出的日期时间与 swift 中的 Date() 不同
- python - Pandas:如何查找范围内的值的行和列?
- node.js - 如何使用硒加载视频?
- python - 无法从 JSON 数组计算平均值
- excel - 需要为特定文本解析 excel 中的单元格并复制其旁边的文本
- c# - 如何将图像位图保存在 .ashx 文件中
- ruby-on-rails - 优化 ActiveRecord 查询。是否可以将两个查询合二为一?