Я не уверен, при каких условиях вы хотите поменять местами значения в столбцах. Я предполагаю, что всякий раз, когда столбец B
выглядит как целое число, вы хотите поменять местами:
import pandas as pd
df = pd.read_clipboard()
print(df)
# swap integers into column B
ind = ~df['B'].str.match("\d+")
df.loc[ind, ['A', 'B']] = df.loc[ind, ['B', 'A']].values
# swap strings starting with "AB" into column A
ind = ~df['A'].str.match("^AD")
df.loc[ind, ['A', 'C']] = df.loc[ind, ['C', 'A']].values
print(df)
Это дает:
A B C
1 AD75 5222 CD56
2 CD45 5233 AD58
3 5267 CD45 AD55
4 5200 AD45 CD46
A B C
1 AD75 5222 CD56
2 AD58 5233 CD45
3 AD55 5267 CD45
4 AD45 5200 CD46