Случайный выбор строк, в которых столбцы должны переключать значения в DataFrame - PullRequest
0 голосов
/ 09 июня 2018

Учитывая 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 сохраняют свои значения.

У кого-нибудь есть идеи, как этого добиться?

1 Ответ

0 голосов
/ 09 июня 2018

Я думаю, что определенно может быть более эффективный способ, чем брать копии 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]
...