无论是进行数据分析,还是进行机器学习,我们都会使用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