Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
408 views
in Technique[技术] by (71.8m points)

pandas - null out n% values in series dictionary python

How can I randomly make n% values null in a pandas series? Let's say I want 20% null values in my dictionary, series, or list.

input something =

{0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e', 5: 'f', 6: 'g', 7: 'h', 8: 'i', 9: 'j'}

expected output with 20% null =

{0: 'a', 1: null, 2: 'c', 3: 'd', 4: 'e', 5: 'f', 6: null, 7: 'h', 8: 'i', 9: 'j'}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can just use series.sample(frac=%) to index and set the values in original series as None.

s = pd.Series({0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e', 5: 'f', 6: 'g', 7: 'h', 8: 'i', 9: 'j'})

s[s.sample(frac=0.4).index] = None #Set 40% to None

print(dict(s))
{0: 'a', 1: 'b', 2: None, 3: None, 4: None, 5: 'f', 6: 'g', 7: 'h', 8: None, 9: 'j'}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...