繁体   English   中英

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

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

我在 pandas dataframe 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

预计 Output:

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM