如何解决更改熊猫数据框中随机选择的行的顺序
我有一个熊猫数据框,看起来像:
c1 c2 c3 c4 result
a b c d 1
b c d a 1
a e d b 1
g a f c 1
但是我想随机选择50%的行以交换顺序,并将结果列从1翻转为0(如下所示):
c1 c2 c3 c4 result
a b c d 1
d a b c 0 (we swapped c3 and c4 with c1 and c2)
a e d b 1
f c g a 0 (we swapped c3 and c4 with c1 and c2)
完成此操作的惯用方式是什么?
解决方法
您有大致的想法。洗净DataFrame并将其分成两半。然后修改一半并重新加入。
import numpy as np
np.random.seed(410112)
dfs = np.array_split(df.sample(frac=1),2) # Shuffle then split in 1/2
# On one half set result to 0 and swap the columns
dfs[1]['result'] = 0
dfs[1] = dfs[1].rename(columns={'c1': 'c2','c2': 'c1','c3': 'c4','c4': 'c3'})
# Join Back
df = pd.concat(dfs).sort_index()
c1 c2 c3 c4 result
0 a b c d 1
1 c b a d 0
2 e a b d 0
3 g a f c 1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。