Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将熊猫中的两列连接到另一个单独的列中?_Python_Pandas - Fatal编程技术网

Python 如何将熊猫中的两列连接到另一个单独的列中?

Python 如何将熊猫中的两列连接到另一个单独的列中?,python,pandas,Python,Pandas,任何帮助都将不胜感激。这可能很容易,但我对Python还是新手。 我想添加两列,即纬度和经度,并将其放入名为Location的列中 例如: 纬度的第一行的值为41.864073,经度的第一行的值为-87.706819 我希望'Locations'列显示41.864073,-87.706819 请接受并感谢您。我对本专栏的有用性表示怀疑,但您可以通过在专栏上应用可调用的元组来生成它 >>> df = pd.DataFrame([[1, 2], [3,4]], columns=['

任何帮助都将不胜感激。这可能很容易,但我对Python还是新手。
我想添加两列,即纬度和经度,并将其放入名为Location的列中

例如:

纬度的第一行的值为
41.864073
,经度的第一行的值为
-87.706819

我希望
'Locations'
列显示
41.864073,-87.706819


请接受并感谢您。

我对本专栏的有用性表示怀疑,但您可以通过在专栏上应用可调用的
元组来生成它

>>> df = pd.DataFrame([[1, 2], [3,4]], columns=['lon', 'lat'])
>>> df
>>> 
   lon  lat
0    1    2
1    3    4
>>> 
>>> df['Location'] = df.apply(tuple, axis=1)
>>> df
>>> 
   lon  lat Location
0    1    2   (1, 2)
1    3    4   (3, 4)
如果数据框中除了
'lon'
'lat'
之外还有其他列,请使用

df['Location'] = df[['lon', 'lat']].apply(tuple, axis=1)

我质疑此列的有用性,但您可以通过在列上应用可调用的
元组来生成它

>>> df = pd.DataFrame([[1, 2], [3,4]], columns=['lon', 'lat'])
>>> df
>>> 
   lon  lat
0    1    2
1    3    4
>>> 
>>> df['Location'] = df.apply(tuple, axis=1)
>>> df
>>> 
   lon  lat Location
0    1    2   (1, 2)
1    3    4   (3, 4)
如果数据框中除了
'lon'
'lat'
之外还有其他列,请使用

df['Location'] = df[['lon', 'lat']].apply(tuple, axis=1)
安装程序
zip

这应该比使用
apply

df.assign(location=[*zip(df.lat, df.lon)])

   lat  lon   location
0   10  100  (10, 100)
1   11  101  (11, 101)
2   12  102  (12, 102)
3   13  103  (13, 103)
4   14  104  (14, 104)
5   15  105  (15, 105)
6   16  106  (16, 106)
7   17  107  (17, 107)
8   18  108  (18, 108)
9   19  109  (19, 109)

列表
变体 虽然我还是建议使用
tuple

df.assign(location=df[['lat', 'lon']].values.tolist())

   lat  lon   location
0   10  100  [10, 100]
1   11  101  [11, 101]
2   12  102  [12, 102]
3   13  103  [13, 103]
4   14  104  [14, 104]
5   15  105  [15, 105]
6   16  106  [16, 106]
7   17  107  [17, 107]
8   18  108  [18, 108]
9   19  109  [19, 109]
安装程序
zip

这应该比使用
apply

df.assign(location=[*zip(df.lat, df.lon)])

   lat  lon   location
0   10  100  (10, 100)
1   11  101  (11, 101)
2   12  102  (12, 102)
3   13  103  (13, 103)
4   14  104  (14, 104)
5   15  105  (15, 105)
6   16  106  (16, 106)
7   17  107  (17, 107)
8   18  108  (18, 108)
9   19  109  (19, 109)

列表
变体 虽然我还是建议使用
tuple

df.assign(location=df[['lat', 'lon']].values.tolist())

   lat  lon   location
0   10  100  [10, 100]
1   11  101  [11, 101]
2   12  102  [12, 102]
3   13  103  [13, 103]
4   14  104  [14, 104]
5   15  105  [15, 105]
6   16  106  [16, 106]
7   17  107  [17, 107]
8   18  108  [18, 108]
9   19  109  [19, 109]
来自Pir的数据

df['New']=tuple(zip(*df[['lat','lon']].values.T))
df
Out[106]: 
   lat  lon        New
0   10  100  (10, 100)
1   11  101  (11, 101)
2   12  102  (12, 102)
3   13  103  (13, 103)
4   14  104  (14, 104)
5   15  105  (15, 105)
6   16  106  (16, 106)
7   17  107  (17, 107)
8   18  108  (18, 108)
9   19  109  (19, 109)
来自Pir的数据

df['New']=tuple(zip(*df[['lat','lon']].values.T))
df
Out[106]: 
   lat  lon        New
0   10  100  (10, 100)
1   11  101  (11, 101)
2   12  102  (12, 102)
3   13  103  (13, 103)
4   14  104  (14, 104)
5   15  105  (15, 105)
6   16  106  (16, 106)
7   17  107  (17, 107)
8   18  108  (18, 108)
9   19  109  (19, 109)

我确实从W-B和timgeb那里学到了一些东西。我的想法是转换成字符串并连接。我发布了我的答案,以防你想要结果作为字符串。否则,上面的答案似乎就是正确的选择

import pandas as pd
from pandas import *  

Dic = {'Lattitude': [41.864073], 'Longitude': [-87.706819]}
DF = pd.DataFrame.from_dict(Dic)
DF['Location'] = DF['Lattitude'].astype(str) + ',' +  DF['Longitude'].astype(str)

我确实从W-B和timgeb那里学到了一些东西。我的想法是转换成字符串并连接。我发布了我的答案,以防你想要结果作为字符串。否则,上面的答案似乎就是正确的选择

import pandas as pd
from pandas import *  

Dic = {'Lattitude': [41.864073], 'Longitude': [-87.706819]}
DF = pd.DataFrame.from_dict(Dic)
DF['Location'] = DF['Lattitude'].astype(str) + ',' +  DF['Longitude'].astype(str)

对不起,我应该提到我还有其他专栏。当我尝试您建议的内容时,它还将其他列添加到位置中。不管怎样,要特别加入lon&lat?对不起,我应该提到我还有其他专栏。当我尝试您建议的内容时,它还将其他列添加到位置中。是否要特别加入lon&lat?感谢分享。OP并没有说明他们需要创建新的数据帧。我不推荐你提出的方法。您创建了两个字典,然后创建了两个数据帧来将它们连接在一起。这是不必要的。然而,其他答案都没有提到实际上是作为字符串连接的。这是一个有效的解释,但您正在进行大量类型转换,但几乎没有什么好处。我建议你还是用元组吧。我明白你的意思了。创建两个字典和两个数据帧是为了达到我认为OP的起点。我更新了我的帖子,创建了一个字典和一个数据框。我同意你的解决方案要优雅得多…只是尝试一下我学到的兵工厂到目前为止lol。感谢分享。OP并没有说明他们需要创建一个新的数据框架。我不推荐你提出的方法。您创建了两个字典,然后创建了两个数据帧来将它们连接在一起。这是不必要的。然而,其他答案都没有提到实际上是作为字符串连接的。这是一个有效的解释,但您正在进行大量类型转换,但几乎没有什么好处。我建议你还是用元组吧。我明白你的意思了。创建两个字典和两个数据帧是为了达到我认为OP的起点。我更新了我的帖子,创建了一个字典和一个数据框。我同意你的解决方案要优雅得多…只是尝试一下我学到的阿森纳,哈哈。嘿,比尔。看起来你得到了很多答案。如果问题得到解决,如果您选择其中一个答案作为接受答案,我们将不胜感激。谢谢嘿,比尔。看起来你得到了很多答案。如果问题得到解决,如果您选择其中一个答案作为接受答案,我们将不胜感激。谢谢“这应该比使用
apply
更好”
apply
非常好,特别是因为它非常直观。因此,如果性能不是问题,那么这是一个很好的解决方案。但是,众所周知,
apply
可能存在性能问题。我尽量避免对每个问题和答案使用性能大棒,但我确实尽量避免在我的答案中使用
apply
。但我承认,在某些情况下,这会使答案更加优雅。就我个人而言,我喜欢拉链。它是语言的核心组成部分,值得理解,因此它也变得“可读”。“这应该比使用
apply
”更好。
apply
非常好,特别是因为它非常直观。因此,如果性能不是问题,那么这是一个很好的解决方案。但是,众所周知,
apply
可能存在性能问题。我尽量避免对每个问题和答案使用性能大棒,但我确实尽量避免在我的答案中使用
apply
。但我承认,在某些情况下,这会使答案更加优雅。就我个人而言,我喜欢拉链。它是语言的核心组成部分,值得理解,使之也变得“可读”。