我有2个山口
Latitude Longitude
35.827085869 -95.67496156
两者都处于浮动状态,我希望将其转换为
Latitude Longitude final
35.827085869 -95.67496156 [35.827085869,-95.67496156]
我该如何实现?
答案 0 :(得分:5)
将两列转换为列表列表,然后将其分配给新列。
# Pandas < 0.24
# df['final'] = df[['Latitude', 'Longitude']].values.tolist()
# Pandas >= 0.24
df['final'] = df[['Latitude', 'Longitude']].to_numpy().tolist()
df
Latitude Longitude final
0 35.827086 -95.674962 [35.827085869, -95.67496156]
请注意,它们必须为列表,如果要分配NumPy数组,则不能将它们作为单列分配回去。
另一种选择是使用agg
进行缩减:
df['final'] = df[['Latitude', 'Longitude']].agg(list, axis=1)
df
Latitude Longitude final
0 35.827086 -95.674962 [35.827085869, -95.67496156]
答案 1 :(得分:4)
再使用zip
df['final']=list(zip(df.Latitude,df.Longitude))
答案 2 :(得分:3)
您也可以使用apply
:
df['final'] = df[['Latitude', 'Longitude']].apply(list, axis=1)
Latitude ... final
0 35.827086 ... [35.827085869, -95.67496156]
答案 3 :(得分:0)
您还可以通过将每列类型转换为str
,然后将其值作为字符串以及所需的方括号添加到字符串中,然后最后将它们作为列final
的值来添加它们。
df['final'] = '[' + df['Latitude'].astype(str) + ', ' + df['Longitude'].astype(str) + ']'