如何堆叠多个Pandas数据帧
在这篇文章中,我们将看到如何堆叠多个pandas数据框架。堆叠意味着将数据框架的行追加到第二个数据框架,以此类推。如果有4个数据框架,那么堆叠后的结果将是一个单一的数据框架,顺序为dataframe1,dataframe2,dataframe3,dataframe4。
方法1:使用concat()方法
这个方法将按照pandas数据框给出的顺序来堆叠这些行。
语法 : pandas.concat([first_dataframe,second_dataframe,third_dataframe,………….,last_dataframe], ignore_index=True,axis)
参数:
- dataframes是要被堆叠的输入数据帧
- ignore_index是用来忽略输入数据帧的索引值。
- axis=0指定垂直堆叠
- axis=1指定水平堆叠
注意:如果ignore_index参数没有设置为true,那么它将采用给定的索引,导致数据帧的错误堆叠。
例子1 :Python程序垂直堆叠两个数据帧
# import pandas module
import pandas as pd
# create first dataframe
data1 = pd.DataFrame({'name': ['sravan', 'bobby',
'ojaswi', 'rohith',
'gnanesh'],
'subjects': ['java', 'python',
'php', 'java', '.NET']})
# create second dataframe
data2 = pd.DataFrame({'name': ['gopi', 'harsha', 'ravi',
'uma', 'deepika'],
'subjects': ['c/c++', 'html/css',
'dbms', 'java', 'IOT']})
# stack the two DataFrames
pd.concat([data1, data2], ignore_index=True, axis=0)
输出 :
例子2: Python代码垂直堆叠多个数据帧
# import pandas module
import pandas as pd
# create first dataframe
data1 = pd.DataFrame({'name': ['sravan', 'bobby', 'ojaswi',
'rohith', 'gnanesh'],
'subjects': ['java', 'python', 'php',
'java', '.NET']})
# create second dataframe
data2 = pd.DataFrame({'name': ['gopi', 'harsha', 'ravi',
'uma', 'deepika'],
'subjects': ['c/c++', 'html/css',
'dbms', 'java', 'IOT']})
# create third dataframe
data3 = pd.DataFrame(
{'name': ['ragini', 'latha'], 'subjects': ['java', 'python']})
# create forth dataframe
data4 = pd.DataFrame(
{'name': ['gowri', 'jyothika'], 'subjects': ['java', 'IOT']})
# stack the four DataFrames
pd.concat([data1, data2, data3, data4], ignore_index=True,axis=0)
输出 :
例子3:Python程序水平堆叠多个数据帧
# import pandas module
import pandas as pd
# create first dataframe
data1 = pd.DataFrame({'name': ['sravan', 'bobby', 'ojaswi',
'rohith', 'gnanesh'],
'subjects': ['java', 'python',
'php', 'java', '.NET']})
# create second dataframe
data2 = pd.DataFrame({'name': ['gopi', 'harsha', 'ravi',
'uma', 'deepika'],
'subjects': ['c/c++', 'html/css',
'dbms', 'java', 'IOT']})
# create third dataframe
data3 = pd.DataFrame(
{'name': ['ragini', 'latha'], 'subjects': ['java', 'python']})
# create forth dataframe
data4 = pd.DataFrame(
{'name': ['gowri', 'jyothika'], 'subjects': ['java', 'IOT']})
# stack the four DataFrames horizontally
pd.concat([data1, data2, data3, data4], axis=1, ignore_index=True)
输出:
方法2:使用append()方法
append()方法用于在给定的数据框架之后追加数据框架。
语法 : first_dataframe.append([second_dataframe,…,last_dataframe],ignore_index=True)
例子1 :使用append()方法堆叠多个数据帧的Python程序
# import pandas module
import pandas as pd
# create first dataframe
data1 = pd.DataFrame({'name': ['sravan', 'bobby', 'ojaswi',
'rohith', 'gnanesh'],
'subjects': ['java', 'python', 'php',
'java', '.NET']})
# create second dataframe
data2 = pd.DataFrame({'name': ['gopi', 'harsha', 'ravi',
'uma', 'deepika'],
'subjects': [ 'c/c++', 'html/css',
'dbms', 'java', 'IOT']})
# create third dataframe
data3 = pd.DataFrame(
{'name': ['ragini', 'latha'], 'subjects': ['java', 'python']})
# create forth dataframe
data4 = pd.DataFrame(
{'name': ['gowri', 'jyothika'], 'subjects': ['java', 'IOT']})
# stack the four DataFrames using append()
data1.append([data2, data3, data4], ignore_index=True)
输出 :