给出像这样的DataFrame:
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': np.ones(5), 'B': np.zeros(5), 'C': np.ones(5), 'D': np.zeros(5)})
我希望能够随机选择多个行,其中A和B值以及相应的C和D值 - 但不是E和F列 - 被切换,以便将B列值放入A中列,反之亦然。
所以它不是整行,而是只有某些列应该切换(A,B,C,D),而E和F保持它们的值。
有没有人对如何做到这一点有任何想法?
答案 0 :(得分:3)
我认为肯定比在这里复制Series
更有效:
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': np.ones(5), 'B': np.zeros(5), 'C': np.ones(5), 'D': np.zeros(5)})
rows_to_swap = np.random.choice(len(df), size=3, replace=False)
a_column = df['A'].copy()
b_column = df['B'].copy()
df.loc[rows_to_swap, 'A'] = b_column[rows_to_swap]
df.loc[rows_to_swap, 'B'] = a_column[rows_to_swap]