成品app直播原始碼搭建,常用資料處理手段程式碼分析

云豹科技-苏凌霄發表於2024-08-03

成品app直播原始碼搭建,常用資料處理手段程式碼分析

資料合併

資料準備
首先定義一個 DataFrame 資料集:

import pandas as pd

df_a = pd.DataFrame(columns=['name', 'rank'], data=[['C', 1], ['java', 2], ['python', 3], ['golang', 4]])
df_b = pd.DataFrame(columns=['name', 'year'], data=[['java', 2020], ['python', 2021], ['golang', 2022]])

透過 merge() 方法能對DataFrame資料集進行合併,透過內連線、外連線、左連線、右連線等方式,如下例項:

merge方法預設是內連線取交集,透過 how 指定連線型別,on 指定連線欄位

# 透過指定 columns 中的 name 內連線
df_tmp = pd.merge(df_a, df_b, on='name', how='outer')
print(df_tmp)

# ========列印========
     name  rank  year
0    java     2  2020
1  python     3  2021
2  golang     4  2022

# 透過指定 columns 中的 name 左連線
df_tmp = pd.merge(df_a, df_b, on='name', how='left')
print(df_tmp)

# ========列印========
     name  rank    year
0       C     1     NaN
1    java     2  2020.0
2  python     3  2021.0
3  golang     4  2022.0

# 透過指定 columns 中的 name 右連線
df_tmp = pd.merge(df_a, df_b, on='name', how='right')
print(df_tmp)

# ========列印========
     name  rank  year
0    java     2  2020
1  python     3  2021
2  golang     4  2022

# 如果合併兩個 DataFrame 不含公共的 columns ,可以直接指定匹配的欄位
df_c = pd.DataFrame(columns=['name1', 'year'], data=[['java', 2020], ['python1', 2021], ['golang1', 2022]])
df_tmp = pd.merge(df_a, df_c, left_on='name', right_on='name1')
print(df_tmp)

# ========列印========
   name  rank name1  year
0  java     2  java  2020

資料分組

資料準備
首先定義一個 DataFrame 資料集:

import pandas as pd

df_a = pd.DataFrame(columns=['name', 'nums'], data=[['python', 1], ['java', 2], ['python', 3], ['java', 4]])

透過 group() 方法能對DataFrame資料集進行分組操作,分組後還能進行求和、取平均值等操作,如下例項:

# 獲取分組後的資料集中每個資料的數量
df_tmp = df_a.groupby('name').size()
print(df_tmp)

# ========列印========
name
java      2
python    2
dtype: int64

# 將分組後的資料集,根據 nums 欄位進行求和
df_tmp = df_a.groupby('name')['nums'].sum()
print(df_tmp)

# ========列印========
name
java      6
python    4
Name: nums, dtype: int64

# 獲取分組後的資料集的大小
df_tmp = df_a.groupby('name').size()
print(df_tmp)

# ========列印========
name
java      3
python    2
Name: nums, dtype: int64

資料拆分

資料準備
首先定義一個 DataFrame 資料集:

import pandas as pd

df_a = pd.DataFrame(columns=['name', 'rank'], data=[['C_no1', 1], ['java_no2', 2], ['python_no3', 3], ['golang', 4]])

透過 split() 方法能對DataFrame資料集中某列資料進行拆分操作,如下例項:

# 資料拆分,對 columns 中的某列的資料某個符號匹配拆分,expand:為True可以直接將分列後的結果轉換成DataFrame
df_tmp = df_a['name'].str.split('_', 1, expand=True)
print(df_tmp)

# ========列印========
        0     1
0       C   no1
1    java   no2
2  python   no3
3  golang  None

# 資料拆分,對拆分後的資料再次與原資料合併
df_tmp = pd.merge(df_a, df_a['name'].str.split('_', 1, expand=True), how='left', left_index=True, right_index=True)
print(df_tmp)

# ========列印========
         name  rank       0     1
0       C_no1     1       C   no1
1    java_no2     2    java   no2
2  python_no3     3  python   no3
3      golang     4  golang  None

資料視覺化

在使用 Pandas 處理資料的過程中,為了更直觀的展示資料的線性關係,我們可以引入 matplotlib 庫將我們的資料變成相關圖形

# plot() 方法生成相應的線性圖形
df_a = pd.DataFrame(columns=['name', 'rank'], data=[['C_no1', 1], ['java_no2', 2], ['python_no3', 3], ['golang', 4]])
df_a.plot()


以上就是成品app直播原始碼搭建,常用資料處理手段程式碼分析, 更多內容歡迎關注之後的文章

相關文章