如何合并 pandas 数据框中的两列并为它们设置值?

How to combine two columns in pandas dataframe and set values to them?

我在 pandas 数据框中有两列 LatitudeLongitude。我正在尝试将它们组合在单列 LOCATION 中。 如果我们看到数据,则只有两个位置存在。

输入:

LATITUDE    LONGITUDE
29.14290089 -100.73896686
29.142901   -100.738967
29.14290089 -100.73896686
29.142901   -100.738967
29.14290089 -100.73896686
29.142901   -100.738967
29.14290089 -100.73896686

预期输出:

LOCATION
Loc_1
Loc_2
Loc_1
Loc_2
Loc_1
Loc_2
Loc_1

使用:

df['LOCATION'] = pd.factorize(df[['LATITUDE','LONGITUDE']].apply(tuple, 1))[0] + 1

df['LOCATION'] = 'Loc_' + df['LOCATION'].astype(str)
print (df)
    LATITUDE   LONGITUDE LOCATION
0  29.142901 -100.738967    Loc_1
1  29.142901 -100.738967    Loc_2
2  29.142901 -100.738967    Loc_1
3  29.142901 -100.738967    Loc_2
4  29.142901 -100.738967    Loc_1
5  29.142901 -100.738967    Loc_2
6  29.142901 -100.738967    Loc_1

这是另一个解决方案:

locs = {(29.14290089, -100.73896686) : "Loc_1",
        (29.142901, -100.738967) : "Loc_2"}

out = df.apply(tuple, axis=1).map(locs)
print(out)

0    Loc_1
1    Loc_2
2    Loc_1
3    Loc_2
4    Loc_1
5    Loc_2
6    Loc_1
dtype: object

如果您希望将其作为 df 中的新列,只需执行以下操作:

df['LOCATION'] = df.apply(tuple, axis=1).map(locs)