dataframe 如何选中某列的一行_带你领略pandas中多表之间如何处理
但我們在處理Pandas多表數據時,我們需要將多個表之間進行表格的連接與合并,當連接完多表之后我們可能還需要對數據進行多重的索引,方便我們更快的找到數據,以及對數據進行做透視表,更加直觀的去觀察我們的數據,今天我們就圍繞著數據合并以及數據重塑及透視表進行展開講解,讓我們去了解在Pandas中如何去這么操作數據。
一、數據合并
1、連接表,
在我們獲得數據的時候可能數據并不完整,而我們需要將這些不完整的數據合并到一起組成一個完整的數據,下面我們對數據進行合并的操作。
- 創建3個DataFrame表格
查看一下三個表的數據
Concat參數如下
Objs(必須參數)
參與連接的pandas對象的列表或字典
Axis
指名連接的軸向,默認為0
Join
選中inner或outer(默認),其他軸向上索引是按交集(inner)還是并集(outer)進行合并
Join_axes
指名用于其他N-1條軸的索引,不執行并集/交集運算
Keys
與連接對象有關的值,用于形成連接軸向上的層次化索引。可以是任意值的列表、數組、元組數組和數組列表(如果需要將levels設置成多級數組的話)
Levels
指定用作層次化索引各級別的索引,如果設置了keys的話
Names
用于創建分層級別的名稱,如果設置了keys或levels的話
Verify_integrity
檢查結果對象新軸上的重復情況,如果發則引發異常。默認為(false)允許重復
Ignore_index
不保留連接軸上的索引,產生一組新索引range
- 通過keys參數設置連接df1、df2、df3的值為x、y、z
- 新增加一個df4表,橫向連接到df1表的第2、3、6、7列
- 將df1和df4橫向進行交集合并
可以看出,合并后的數據為df1和df4都有的索引行進行合并的
- 按照df1的索引進行df1表和df4表的橫向索引
- 結果可以看出合并是按照df1表的索引進行合并的。通過append()方法連接表格連接df1和df2
- 連接df1和df4表
可以看出在合并的數據中原表中沒有的索引和列值都填充為了NaN缺失值。
- 連接df1、df2、df3表
- 忽略連接軸上的上的索引
- 新增加一個s1表,并且跟df1進行橫向合并
- 新增加一個s2表,并且跟df1進行多次連接
結果可以看出,s2表中的數據并未確定列名,那么系統就自動的從0開始進行列名的名稱。
- 表格合并后不保留原有的索引列名
表格合并后將原有的列名全部替換為一個range()序列
1.3、附加行
結尾可以看出,合并后將s2中的數據作為附加行跟在了df1表的后面
2、數據庫風格的DataFrame連接/合并
2.1、單個鍵進行連接
- 創建兩個表格并查看
- 將key作為兩個表連接的中介
2.2、多個鍵進行連接
- 創建兩個表格,然后將表格以Key1和key2作為中介進行連接
可以看出左右表以共同存在的key1、key2的行作為取出元素的依據,只取出了前三行,left表中的第四行為k2、k1,right表中的第四行為k2、k0,并不匹配所以沒有進行取值。
- 以左表為主導進行連接,連接以key1,key2作為連接中介進行取值
可以看出這次連接是以left表匯總的key1 、key2作為主鍵進行連接,right表中的不存在的主鍵元素則以NaN代替。
- 以右表的key1、key2位主鍵進行連接
- 以兩個表所有的key1、key2的元素都取出來
- 當兩個表列名相同時進行合并
列名相同時則會重新命名列名
2.3、合并指示符
- 以并集進行合并
也可以使用字符串作為參數替代True,字符串會作為該列的列名稱。
2.4、通過索引進行連接
- 通過左表索引連接右表
- 左表連接右表,求并集的形式
- 左表連右表,求交集的形式
2.5、通過索引和某列連接
通過結果可以看出,right表中的數據重復了一遍。
2.6、重疊列名稱的合并
2.7、數據框拼接
如果都存在的值以傳入的數據為準
二、數據重塑及透視表
1、多重索引
- 創建表格并查看
- 查看animal和hair_length下的所有數據
或者以一級標題或二級標題進行查看
- 創建表格并查看
使用level參數進行調用
- 查看exp下面的屬性值
- 查看anmal下面的屬性值
- 調用數據
- 調用first數據
- 調用second數據
2、透視表
- 創建一個透視表
- 查看D列,索引為A,B,列為C的所有數據
- 查看D列,索引為B,列為A,C的所有數據求和
- 查看DE列,索引為B,列為A,C的求和數據
- 查看索引為A,B,列為C的數據
總結
以上是生活随笔為你收集整理的dataframe 如何选中某列的一行_带你领略pandas中多表之间如何处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql查询注意_mysql中sql查
- 下一篇: 组件php53 php55区别,分享下p