如何合并 pandas 数据框中的两列并为它们设置值?
How to combine two columns in pandas dataframe and set values to them?
我在 pandas 数据框中有两列 Latitude 和 Longitude。我正在尝试将它们组合在单列 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)
我在 pandas 数据框中有两列 Latitude 和 Longitude。我正在尝试将它们组合在单列 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)