91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現pandas數據拼接

發布時間:2020-08-03 11:39:22 來源:億速云 閱讀:156 作者:小豬 欄目:開發技術

小編這次要給大家分享的是如何實現pandas數據拼接,文章內容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

一 前言

pandas數據拼接有可能會用到,比如出現重復數據,需要合并兩份數據的交集,并集就是個不錯的選擇,知識追尋者本著技多不壓身的態度蠻學習了一下下;

二 數據拼接

在進行學習數據轉換之前,先學習一些數拼接相關的知識

2.1 join()聯結

有關merge操作知識追尋者這邊不提及,有空可能后面會專門出一篇相關文章,因為其學習方式根SQL的表聯結類似,不是幾行能說清楚的知識點;

join操作能將 2 個DataFrame 合并為一塊,前提是DataFrame 之間的列沒有重復;

# -*- coding: utf-8 -*-

import pandas as pd
import numpy as np

data1 = {
  'user' : ['zszxz','craler','rose'],
  'price' : [100, 200, 300],
  'hobby' : ['reading','running','hiking']
}
index1 = ['user1','user2','user3']
frame1 = pd.DataFrame(data1,index1)

data2 = {
  'person' : ['zszxz','craler','rose'],
  'number' : [100, 2000, 3000],
  'activity' : ['swing','riding','climbing']
}
index2 = ['user1','user2','user3']
frame2 = pd.DataFrame(data2,index2)

join = frame1.join(frame2)
print(join)

輸出

         user  price    hobby  person  number  activity
user1   zszxz    100  reading   zszxz     100     swing
user2  craler    200  running  craler    2000    riding
user3    rose    300   hiking    rose    3000  climbing

2.2 concat()拼接

使用 concat() 函數能將2個 Series 拼接為一個,默認按行拼接;

ser1 = pd.Series(['111','222',np.NaN])
ser2 = pd.Series(['333','444',np.NaN])
# 默認按行拼接
print(pd.concat([ser1, ser2]))

如果按列拼接則 axis = 1

ser1 = pd.Series(['111','222',np.NaN])
ser2 = pd.Series(['333','444',np.NaN])
# 按列拼接
print(pd.concat([ser1, ser2],axis=1))

輸出

     0    1
0  111  333
1  222  444
2  NaN  NaN

更近一步,指定key 參數 輸出的數據格式就和 DataFrame 一樣

ser1 = pd.Series(['111','222',np.NaN])
ser2 = pd.Series(['333','444',np.NaN])
# 按列拼接
data = pd.concat([ser1, ser2],axis=1, keys=['zszxz', 'rzxx'])
print(data)

輸出

  zszxz rzxx
0   111  333
1   222  444
2   NaN  NaN

注 : DataFrame 的 concat 操作 和 Series 類似;

2.3 combine_first()組合

索引重復時就可以使用combine_first進行拼接

ser1 = pd.Series(['111','222',np.NaN],index=[1,2,3])
ser2 = pd.Series(['333','444',np.NaN,'555'],index=[1,2,3,4])
data = ser1.combine_first(ser2)
print(data)

輸出

1    111
2    222
3    NaN
4    555
dtype: object

將Series 位置互換一下,可以看見基準將以 ser2為準;

ser1 = pd.Series(['111','222',np.NaN],index=[1,2,3])
ser2 = pd.Series(['333','444',np.NaN,'555'],index=[1,2,3,4])
data = ser2.combine_first(ser1)
print(data)

輸出

1    333
2    444
3    NaN
4    555
dtype: object

2.4 軸轉換

準備的數據

# -*- coding: utf-8 -*-

import pandas as pd
import numpy as np

data = {
  'user' : ['zszxz','craler','rose'],
  'price' : [100, 200, 300],
  'hobby' : ['reading','running','hiking']
}
index = ['user1','user2','user3']
frame = pd.DataFrame(data,index)
print(frame)

輸出

         user  price    hobby
user1   zszxz    100  reading
user2  craler    200  running
user3    rose    300   hiking

stack() 將 列轉為行;

# -*- coding: utf-8 -*-

import pandas as pd
import numpy as np

data = {
  'user' : ['zszxz','craler','rose'],
  'price' : [100, 200, 300],
  'hobby' : ['reading','running','hiking']
}
index = ['user1','user2','user3']
frame = pd.DataFrame(data,index)
print(frame.stack())

輸出

user1  user       zszxz
       price        100
       hobby    reading
user2  user      craler
       price        200
       hobby    running
user3  user        rose
       price        300
       hobby     hiking
dtype: object

使用 unstack()將 數據結構重新返回

# -*- coding: utf-8 -*-

import pandas as pd
import numpy as np

data = {
  'user' : ['zszxz','craler','rose'],
  'price' : [100, 200, 300],
  'hobby' : ['reading','running','hiking']
}
index = ['user1','user2','user3']
frame = pd.DataFrame(data,index)
sta = frame.stack()
print(sta.unstack())

輸出

         user price    hobby
user1   zszxz   100  reading
user2  craler   200  running
user3    rose   300   hiking

看完這篇關于如何實現pandas數據拼接的文章,如果覺得文章內容寫得不錯的話,可以把它分享出去給更多人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巴中市| 布尔津县| 丰台区| 腾冲县| 和平区| 阳曲县| 宁安市| 神池县| 安龙县| 景泰县| 久治县| 商水县| 吕梁市| 汉寿县| 绥化市| 永兴县| 任丘市| 宜春市| 苍梧县| 军事| 泰顺县| 前郭尔| 泰宁县| 茂名市| 大城县| 历史| 平顺县| 长海县| 临颍县| 若羌县| 嵩明县| 景洪市| 威远县| 丹棱县| 荣成市| 虞城县| 苏尼特左旗| 上林县| 赣榆县| 迭部县| 通城县|