无论是进行数据分析,还是进行机器学习,我们都会使用Python中的pandas库。而当我们需要将多个数据集合并时,pandas之中的pandasconcat或者pandasmerge会是不错的选择。但是这两个函数有时候不能满足我们的需求,这时候就需要pandasappend了。本文将从函数的使用,到应用场景的举例,一步步对pandasappend进行详细阐述。
一、pandasappend函数
pandasappend函数,就是用于将数据合并的函数。其中可以合并Series或者DataFrame的数据类型。具体来说,可以使用如下的代码来进行执行:pd.append或者DataFrame.append
其中DataFrame.append是类似于pd.concat函数的。而pd.append是Series数据类型的append函数。
该函数的具体参数有self, other, ignore_index=False, verify_integrity=False, sort=False,其中self代表当前的
Series或者DataFrame,而other则代表待合并的Series或者DataFrame。
import pandas as pd s1 = pd.Series(['a', 'b']) s2 = pd.Series(['c', 'd']) s3 = s1.append(s2) print(s3)
运行以上代码,结果如下所示:
0 a 1 b 0 c 1 d dtype: object
在上面的代码中,我们定义了两个Series类型的变量s1和s2。然后,使用s1的append函数来将两个Series合并,并将结果赋值给了s3。最后打印出了s3的结果。
二、pandasappend出现the frame
pandasappend最常用的情况是,将DataFrame按行合并起来。具体来说,就是将两个DataFrame的列保持一致,行进行合并。
import pandas as pd
df1 = pd.DataFrame({'name': ['Jack', 'Tom'],
'age': [20, 25]})
df2 = pd.DataFrame({'name': ['John', 'Mike'],
'age': [23, 29]})
df3 = df1.append(df2)
print(df3)
运行以上代码,结果如下所示:
name age
0 Jack 20
1 Tom 25
0 John 23
1 Mike 29
在上面的代码中,我们定义了两个DataFrame类型的变量df1和df2。然后使用df1的append函数来将两个DataFrame按行合并,并将结果赋值给了df3。最后打印出了df3的结果。
三、pandasappendconcatmerge
1. pandasconcat
pandasconcat是用于将多个DataFrame按指定的轴(axis)方向进行合并。常用的轴有0和1,0表示按行合并,1表示按列合并。
import pandas as pd
df1 = pd.DataFrame({'name': ['Jack', 'Tom'],
'age': [20, 25]})
df2 = pd.DataFrame({'score': [90, 80]})
df3 = pd.concat([df1, df2], axis=1)
print(df3)
运行以上代码,结果如下所示:
name age score
0 Jack 20 90
1 Tom 25 80
在上面的代码中,我们定义了两个DataFrame类型的变量df1和df2。然后使用pandasconcat函数将两个DataFrame按列合并,并将结果赋值给了df3。最后打印出了df3的结果。
2. pandasmerge
pandasmerge是用于将两个DataFrame按照指定的列进行合并的函数。常用的参数有两个,一个是其中一个DataFrame的列名,另一个是另一个DataFrame的列名。
import pandas as pd
df1 = pd.DataFrame({'name': ['Jack', 'Tom'],
'age': [20, 25]})
df2 = pd.DataFrame({'name': ['Jack', 'Tom'],
'score': [90, 80]})
df3 = pd.merge(df1, df2, on='name')
print(df3)
运行以上代码,结果如下所示:
name age score
0 Jack 20 90
1 Tom 25 80
在上面的代码中,我们定义了两个DataFrame类型的变量df1和df2。然后使用pandasmerge函数按照’name’进行合并,并将结果赋值给了df3。最后打印出了df3的结果。
3. pandasappend
pandasappend是用于将两个DataFrame按行进行合并的函数。具体实现方式与前面的介绍类似。
import pandas as pd
df1 = pd.DataFrame({'name': ['Jack', 'Tom'],
'age': [20, 25]})
df2 = pd.DataFrame({'name': ['John', 'Mike'],
'age': [23, 29]})
df3 = df1.append(df2)
print(df3)
运行以上代码,结果如下所示:
name age
0 Jack 20
1 Tom 25
0 John 23
1 Mike 29
在上面的代码中,我们定义了两个DataFrame类型的变量df1和df2。然后使用df1的append函数将两个DataFrame按行合并,并将结果赋值给了df3。最后打印出了df3的结果。
四、应用场景
在日常的数据分析和处理中,pandasappend可以广泛应用于多个数据源的合并,特别是在以下几个场景中更加常见:
1. 数据分页
在进行分页时,我们需要将多个数据源进行合并。一般来说,每次从数据库中读入指定数目的数据,然后将数据合并起来,以供下一步的操作。
import pandas as pd
all_data = pd.DataFrame()
for page in range(1, 5):
data = pd.read_csv(f'data_{page}.csv')
all_data = all_data.append(data)
print(all_data)
在上面的代码中,我们读入了四个csv文件,然后使用df1的append函数将这四个文件按行合并起来,并将结果赋值给了all_data。最后打印出了all_data的结果。
2. 时间序列分析
时间序列分析常常需要将多个时间段的数据进行合并。这时候,就可以使用pandasappend进行处理。
import pandas as pd
all_data = pd.DataFrame()
for year in range(2018, 2021):
data = pd.read_csv(f'data_{year}.csv')
all_data = all_data.append(data)
print(all_data)
在上面的代码中,我们读入了三个csv文件,每个文件代表的是不同年份的数据。然后使用df1的append函数将这三个文件按行合并起来,并将结果赋值给了all_data。最后打印出了all_data的结果。
3. 数据库数据导入
在从数据库中读取数据时,可能会导出多个文件。这时候,我们可以使用pandasappend对这些数据进行合并。
import pandas as pd
import sqlite3
conn = sqlite3.connect('database.db')
all_data = pd.DataFrame()
for table in ['table1', 'table2', 'table3']:
data = pd.read_sql_query(f'SELECT * FROM {table}', conn)
all_data = all_data.append(data)
print(all_data)
在上面的代码中,我们连上了SQLite数据库,并从中读取了三个表。然后使用df1的append函数将这三个表按行合并起来,并将结果赋值给了all_data。最后打印出了all_data的结果。
总结
本文从函数的介绍,到应用场景的实例,详细阐述了pandasappend的使用。
参考文献
1. Pandas官方文档. https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.append.html
2. 利用Python进行数据分析
3. 如何将pandas dataframe数据插入sqlite数据库 https://blog.csdn.net/y906013829/article/details/84769055
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/191038.html
微信扫一扫
支付宝扫一扫