很多时候,我们需要将不同列中的值组合到一个列中。可以有很多用例,例如将列表中人员的名字和姓氏合并,将日期,月份和年份合并到“日期”的单个列中,等等。现在,我们将看到如何在帮助下实现此目的。一些例子。
示例1:在此示例中,我们将姓氏名的两个列合并为一个列名。为此,我们将使用map函数。
import pandas as pd from pandas import DataFrame # creating a dictionary of names Names = { 'FirstName' :[ 'Suzie' , 'Emily' , 'Mike' , 'Robert' ], 'LastName' :[ 'Bates' , 'Edwards' , 'Curry' , 'Frost' ]} # creating a dataframe from dictionary df = DataFrame(Names, columns = [ 'FirstName' , 'LastName' ]) print (df) print ( '
' ) # concatenating the columns df[ 'Name' ] = df[ 'FirstName' ]. map ( str ) + ' ' + df[ 'LastName' ]. map ( str ) print (df) |
输出:
示例2:类似地,我们可以连接数据帧中任意数量的列。让我们看另一个示例,将一个日期,月份和年份的三个不同的列连接在一个“日期”列中。
import pandas as pd from pandas import DataFrame # creating a dictionary of Dates Dates = { 'Day' : [ 1 , 29 , 23 , 4 , 15 ], 'Month' : [ 'Aug' , 'Feb' , 'Aug' , 'Apr' , 'Mar' ], 'Year' : [ 1947 , 1983 , 2007 , 2011 , 2020 ]} # creating a dataframe from dictionary df = DataFrame(Dates, columns = [ 'Day' , 'Month' , 'Year' ]) print (df) print ( '
' ) # concatenating the columns df[ 'Date' ] = df[ 'Day' ]. map ( str ) + '-' + df[ 'Month' ]. map ( str ) + '-' + df[ 'Year' ]. map ( str ) print (df) |
输出:
范例3:
我们可以进一步进行此过程,并连接来自多个不同数据帧的多个列。在此示例中,我们将数据帧df1和df2的列合并为一个数据帧。
import pandas as pd from pandas import DataFrame # creating a dictionary of Dates Dates = { 'Day' : [ 1 , 1 , 1 , 1 ], 'Month' : [ 'Jan' , 'Jan' , 'Jan' , 'Jan' ], 'Year' : [ 2017 , 2018 , 2019 , 2020 ]} # creating a dataframe from dictionary df1 = DataFrame(Dates, columns = [ 'Day' , 'Month' , 'Year' ]) # creating a dictionary of Rates Rates = { 'GDP' : [ 5.8 , 7.6 , 5.6 , 4.1 ], 'Inflation Rate' : [ 2.49 , 4.85 , 7.66 , 6.08 ]} # creating a dataframe from dictionary df2 = DataFrame(Rates, columns = [ 'GDP' , 'Inflation Rate' ]) # combining columns of df1 and df2 df_combined = df1[ 'Day' ]. map ( str ) + '-' + df1[ 'Month' ]. map ( str ) + '-' + df1[ 'Year' ]. map ( str ) + ': ' + 'GDP: ' + df2[ 'GDP' ]. map ( str ) + '; ' + 'Inflation: ' + df2[ 'Inflation Rate' ]. map ( str ) print (df_combined) |
输出: