Предположим, у меня есть этот фрейм данных:
Импортируйте панд как pd
def creatingDataFrame():
raw_data = {'Region1': ['A', 'A', 'C', 'B' , 'A', 'B'],
'Region2': ['B', 'C', 'A', 'A' , 'B', 'A'],
'var-1': [20, 30, 40 , 50, 10, 20],
'var-2': [3, 4 , 5, 1, 2, 3]}
df = pd.DataFrame(raw_data, columns = ['Region1', 'Region2','var-1', 'var-2'])
return df
Я хочу создать этот столбец:
df['segment']=['A-B','A-C','A-C','A-B','A-B','A-B']
Обратите внимание, что он используетстолбцы «Регион1» и «Регион2», но в отсортированном порядке.Я понятия не имею, как это сделать с помощью панд.Единственное решение, которое я имею в виду, - использовать список в качестве промежуточного шага:
Regions=df[['Region1','Region2']].values.tolist()
segments=[]
for i in range(np.shape(Regions)[0]):
auxRegions=sorted(Regions[i][:])
segments.append(auxRegions[0]+'-'+auxRegions[1])
df['segments']=segments
Чтобы получить:
>>> df['segments']
0 A-B
1 A-C
2 A-C
3 A-B
4 A-B
5 A-B