pandas合并concat

import pandas as pd
import numpy as np

# 定义资源集合
df1 = pd.DataFrame(np.ones((3, 4)) * 0, columns=['a', 'b', 'c', 'd'])
df2 = pd.DataFrame(np.ones((3, 4)) * 1, columns=['a', 'b', 'c', 'd'])
df3 = pd.DataFrame(np.ones((3, 4)) * 2, columns=['a', 'b', 'c', 'd'])
# pandas处理多组数据的时候往往会要用到数据的合并处理,使用 concat是一种基本的合并方式.而且concat中有很多参数可以调整,合并成你想要的数据形式.
# axis (合并方向) 0代表纵向,1代表横向
# concat纵向合并
res = pd.concat([df1, df2, df3], axis=0)
# ignore_index (重置 index)
res = pd.concat([df1, df2, df3], axis=0, ignore_index=True)
# join (合并方式)
# join='outer'为预设值,因此未设定任何参数时,函数默认join='outer'。此方式是依照column来做纵向合并,有相同的column上下合并在一起,其他独自的column个自成列,原本没有值的位置皆以NaN填充。
# 定义资料集
df1 = pd.DataFrame(np.ones((3, 4)) * 0, columns=['a', 'b', 'c', 'd'], index=[1, 2, 3])
df2 = pd.DataFrame(np.ones((3, 4)) * 1, columns=['b', 'c', 'd', 'e'], index=[2, 3, 4])
# 纵向"外"合并df1与df2,相同的column合并在一起,其他的会保留单独成列
res = pd.concat([df1, df2], axis=0, join='outer')
# 原理同上个例子的说明,但只有相同的column合并在一起,其他的会被抛弃
# 纵向"内"合并df1与df2
res = pd.concat([df1, df2], axis=0, join='inner')
# append (添加数据)append只有纵向合并,没有横向合并。
# 定义资料集
df1 = pd.DataFrame(np.ones((3, 4)) * 0, columns=['a', 'b', 'c', 'd'])
df2 = pd.DataFrame(np.ones((3, 4)) * 1, columns=['a', 'b', 'c', 'd'])
df3 = pd.DataFrame(np.ones((3, 4)) * 1, columns=['a', 'b', 'c', 'd'])
s1 = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])
# 将df2合并到df1的下面,以及重置index,并打印出结果
res = df1.append(df2, ignore_index=True)
# 合并多个df,将df2与df3合并至df1的下面,以及重置index,并打印出结果
res = df1.append([df2, df3], ignore_index=True)
#合并series,将s1合并至df1,以及重置index,并打印出结果
res = df1.append(s1,ignore_index=True)
print(res)

你可能感兴趣的:(数据处理与分析,python,机器学习,数据分析,java,大数据)