如何在 Python 中使用 cbind
在这篇文章中,我们将讨论Python中的cbind。我们已经看到R编程语言中的cbind()函数将指定的向量、矩阵或数据框按列组合起来。但是在Python中,有一个concat()函数,它相当于R语言的cbind()函数。
创建用于演示的数据框架
# import pandas module
import pandas as pd
# create dataframe
data1 = pd.DataFrame({'name': ['sravan', 'harsha', 'jyothika'],
'subject1': ['python', 'R', 'php'],
'marks': [96, 89, 90]})
# create dataframe
data2 = pd.DataFrame({'name': ['sravan', 'harsha', 'jyothika'],
'subject2': ['html', '.net', 'jsp'],
'marks': [89, 79, 80]})
# display
print(data1)
print(data2)
输出 :
例子1:连接具有相同索引的数据框架
这将根据索引连接逐行数据。这里两个数据框架的索引是相同的。
# import pandas module
import pandas as pd
# create dataframe
data1 = pd.DataFrame({'name': ['sravan', 'harsha', 'jyothika'],
'subject1': ['python', 'R', 'php'],
'marks': [96, 89, 90]})
# create dataframe
data2 = pd.DataFrame({'name': ['sravan', 'harsha', 'jyothika'],
'subject2': ['html', '.net', 'jsp'],
'marks': [89, 79, 80]})
# concat dataframes
pd.concat([data1, data2], axis=1)
输出 :
例子2:合并不等价指数的数据帧
在这种情况下,两个数据帧的指数不相等,当我们应用concat()函数时,会产生一个新的数据帧,其值为NaN。
# import pandas module
import pandas as pd
# create dataframe
data1 = pd.DataFrame({'name': ['sravan', 'harsha', 'jyothika'],
'subject1': ['python', 'R', 'php'],
'marks': [96, 89, 90]}, index=[0, 1, 2])
# create dataframe
data2 = pd.DataFrame({'name': ['sravan', 'harsha', 'jyothika'],
'subject2': ['html', '.net', 'jsp'],
'marks': [89, 79, 80]}, index=[3, 4, 5])
# concat dataframes
pd.concat([data1, data2], axis=1)
输出 :
为了删除这些NaN行,我们必须使用reset_index()方法来删除索引。
语法 : dataframe.reset_index(drop=True, inplace=True)
示例:
# import pandas module
import pandas as pd
# create dataframe
data1 = pd.DataFrame({'name': ['sravan', 'harsha', 'jyothika'],
'subject1': ['python', 'R', 'php'],
'marks': [96, 89, 90]}, index=[0, 1, 2])
# create dataframe
data2 = pd.DataFrame({'name': ['sravan', 'harsha', 'jyothika'],
'subject2': ['html', '.net', 'jsp'],
'marks': [89, 79, 80]}, index=[3, 4, 5])
# remove dataframe 1 indices
data1.reset_index(drop=True, inplace=True)
# remove dataframe 2 indices
data2.reset_index(drop=True, inplace=True)
# concat dataframes
pd.concat([data1, data2], axis=1)
输出 :