主頁 > 後端開發 > Pandas 常用操作

Pandas 常用操作

2023-03-19 14:53:50 後端開發

 

Pandas庫專為資料分析而設計,它是使Python成為強大而高效的資料分析環境的重要因素,

一、Pandas資料結構

1、import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

2、S1=pd.Series([‘a’,’b’,’c’]) series是一組資料與一組索引(行索引)組成的資料結構

3、S1=pd.Series([‘a’,’b’,’c’],index=(1,3,4)) 指定索引

4、S1=pd.Series({1:‘a’,2:’b’,3:’c’}) 用字典形式指定索引

5、S1.index() 回傳索引

6、S1.values() 回傳值

7、Df=pd.DataFrame([‘a’,’b’,’c’]) dataframe是一組資料與兩組索引(行列索引)組成的資料結構

8、Df=pd.DataFrame([[a,A],[b,B],[c,C]],columns=[‘小寫’,’大寫’],index=[‘一’,’二’,’三’])

Columms 為列索引,index為行索引

9、pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspider 清華鏡像

10、data=https://www.cnblogs.com/lmq886/p/{‘小寫’:[‘a’,’b’,’c’],’大寫’:[‘A’,’B’,’C’]} 傳入字典

Df=Pd.DataFrame(data)

11、Df.index() df.columns()

二、讀取資料

12、df=pd.read_excel(r’C:\user\...xlsx’,sheet_name=’sheet1’) 或

Pd.read_excel(r’C:\user\...xlsx’,sheet_name=0) 讀取excel表

13、Pd.read_excel(r’C:\user\...xlsx’,index_col=0,header=0)

index_col指定行索引,header指定列索引

14、pd.read_excel(r’C:\user\...xlsx’,usecols=[0,1]) 匯入指定列,不能有index_col和header

15、pd.read_tablel(r’C:\user\...txt’,sep=’ ’) 匯入txt檔案,sep指定分隔符是什么

16、df.head(2) 展示前兩行,默認展示前5行

17、df.shape 顯示資料幾行幾列,不包含行和列索引

18、http://df.info() 可查看表中資料的型別

19、df.describe() 可獲得表中數值型別指端的分布值(和、平均值、方差等)

三、資料預處理

20、df.info() 可顯示表中哪個資料為空

21、df.isnull() 方法可以判斷哪個值是缺失值,如果缺失回傳True,否則為False

22、df.dropna() 默認洗掉含缺失值的行

23、df.dropna(how=’all’) 洗掉全為空值的行,不全為空值的行不會洗掉

24、df.fillna(0) 用0填充所有空值

25、df.fillna({‘性別’:’男’,’年齡’:’30’}) 對性別列中空值填充男,年齡填充30

26、df.drop_duplicates() 默認對所有值進行重復值檢查,保留第一行的值

27、df.drop_duplicates(subset=’性別’) 對性別列中重復值查詢保留第一行

28、df.drop_duplicates(subset=[’性別’,’公司’],keep=’last’) 對性別和公司兩列查重

keep設定默認為first(保留第一個),可設定為last(保留最后一個) 或False(不部不保留)

29、df[‘ID’].dtype 查看ID列的資料型別

30、df[‘ID’].astype(‘float’) 將ID列的資料型別轉換為float型別

31、資料型別:int、float、object、string、unicode、datetime

32、df[‘ID’][1] ID列的第二個資料

33、df.columns=[‘大寫’,’小寫’,’中文’] 為無索引表添加列索引

34、df.index=[1,2,3] 添加行索引

35、df.set_index(‘編號’) 指明要用的列作為行索列

36、df.rename(index={‘訂單編號’:’新訂單編號’,’客戶姓名’:’新客戶姓名’}) 對行索引進行重新命名

37、df.rename(columns={1:’一’,2:’二’}) 對列索引進行重新命名

38、df.reset_index() 默認將全部index轉化為column

39、df.reset_index(level=0) 將0級索引轉化為column

40、df.reset_index(drop=True) 洗掉原有索引

四、資料選擇

41、df[[‘ID’,’姓名’]] 多個列名要裝入list

42、df.iloc[[1,3],[2,4]] 用行列編號選擇資料

43、df.iloc[1,1] 選取表中的第3行2列資料,第一行默認為列索引

44、df.iloc[:,0:4] #獲取第1列到第4列的值

45、df.loc[‘一’] #loc用行名選取的行資料,格式是Series,但可以用串列形式訪問

46、df.loc[‘一’][0] 或 df.loc[‘一’][‘序號’]

47、df.iloc[1]#iloc用行編號選取行資料

48、df.iloc[[1,3]]#多行編號選取行資料,要用list封裝,不然變成行列選取

49、df.iloc[1:3]#選擇第二行和第四行

50、df[df[‘年齡’]<45] #加判斷條件回傳符合條件的全部資料,不局限年齡列

51、df[(df[‘年齡’]<45)&(df[‘ID’]<4)] #判斷多條件選擇資料

52、df.iloc[[1,3],[2,4]] 相當于df.loc[[‘一’,’二’],[‘年齡’,’ID’]] #loc是名,iloc是編號

53、df[df[‘年齡’]<45][[‘年齡’,’ID’]]#先通過年齡條件選擇行,再通過不同索引指定列

54、df.iloc[1:3,2:4]#切片索引

五、數值操作

55、df[‘年齡’].replace(100,33)#對年齡列中的100替換成33

56、df.replace(np.NaN,0)#相當于fillna(),其中np.NaN是python中預設值的表示方式

57、df.replace([A,B],C)#多對一替換,A、B替換成C

58、df.replace({‘A’:’a’,‘B’:’b’,‘C’:’c’})#多對多替換

59、df.sort_values(by=[&apos;申請單編號&apos;],ascending=False)#申請單編號列降序排列,Ture升序排列(默認)

60、df.sort_values(by=[&apos;申請單編號&apos;],na_position=’first’)#申請單編號列升序排列,缺失值排在第一位

默認缺失值在最后一位last

61、df.sort_values(by=[&apos;col1&apos;,’col2’],ascending=[False,True])#多列排序

62、df[‘銷量’].rank(method=’first’)#銷量排名(不是排序),method有first\min\max\average

63、df.drop([‘銷量’,’ID’],axis=1)#洗掉列,直接是列名

64、df.drop(df.columns[[4,5]],axis=1)#洗掉列,是編號

65、df.drop(colums=[‘銷量’,’ID’])#此種方式洗掉列,可以不寫axis=1

66、df.drop([‘a’,’b’],axis=0)#洗掉行,直接是列名

67、df.drop(df.index[[4,5]],axis=0)#洗掉行,是編號

68、df.drop(index=[‘a’,’b’])#此種方式洗掉行,可以不寫axis=0

69、df[‘ID’].value_counts()#對ID列中資料出現的次數進行統計

70、df[‘ID’].value_counts(normalize=Ture,sort=False)#對ID列中資料出現的次數占比進行統計,并降序排序

71、df[‘ID’].unique()#獲取列的唯一值

72、df[‘年齡’].isin([‘a’,11])#查看這列中是否包含a或11

73、pd.cut(df[‘ID’],bins=[0,3,6,10])#用bins指明切磁區間

74、pd.qcut(df[‘ID’],3)#ID列切分成3個部分,每部分資料個數盡量一致

75、df.insert(2,’商品’,[‘書’,’筆’,’計算器’])#插入第三列

76、df[’商品’]=[‘書’,’筆’,’計算器’])#插新列,在表的最后面

77、df.T行列互換

78、df.tack()#把表格型資料轉化成樹形資料

79、df.set_index([‘ID’,’姓名’]).stack().reset_index()#寬表轉換成長表,先將共同列設定成行索引,再對其他列

進行轉化成樹形資料,再重置行索引

80、df.melt(id_vars=[‘ID’,’姓名’],var_name=’year’,value_name=’sale’)#id_var引數指明寬表轉換成長表時保持不

變的列,var_name引數表示原來的列索引轉化為行索引對應的列名,value_name表示新索引對應值的列名

81、df[‘C1’].apply(lambda x:x+1)#相當于map(),只是需要和lambda配合

82、df.applymap(lambda x:x+1),對表中的所有資料執行相同函式運算

六、資料運算

83、df[‘ID’]+Df[‘ID’]#可進行加減乘除

84、df[‘ID’]>Df[‘ID’]#可進行> < == !=等比較運算

85、df.count()#統計每列的非空值的個數

86、df.count(axis=1)#統計每行的非空值的個數

87、df[‘ID’].count()#統計指定列的非空值的個數

88、df.sum(axis=1)#每列/行求和結果

89、df.mean(axis=1)#每列/行求均值

90、df.max(axis=1)#每列/行求最大值

91、df.min(axis=1)#每列/行求最小值

92、df.median(axis=1)#每列/行求中間值

93、df.mode(axis=1)#每列/行中出現最多的值

94、df.var(axis=1)#每列/行求方差

95、df.std(axis=1)#每列/行求標準差

96、df.quantile(0.25)#求1/4分位數,可以0.5、0.75等分位數

97、df.corr()#求整個DataFrame表中的相關性

七、時間序列

98、from datetime import datetime

99、datatime.now()#回傳現在的時間年月日時分秒

100、datatime.now().year#回傳年,可以.month\.day

101、datatime.now().weekday()-1#回傳周幾

102、datatime.now().isocalendar()#回傳周數

103、 (2018,41,7)#2018年的第41周第7天

104、datatime.now().date()#只回傳年月日

105、datatime.now().time()#只回傳時間

106、datatime.now().strftime(‘%Y-%m-%d %H:%M:%S’)#回傳2020-03-13 09:09:12

107、from dateutil.parer import parse

108、 parse(str_time)#將字串的時間轉化成為時間格式

109、pd.Datetimeindex([‘2020-02-03’,2020-03-05’])#設定時間索引

110、data[‘2018’]#獲取2018年的資料

111、data[‘2018-01’]#獲取2018年1月的資料

112、data[‘2018-01-05’:‘2018-01-15’]#獲取這個時段的資料

113、非時間索引的表格處理

114、df[df[‘成交時間’]==datetime(2018,08,05)]

115、df[df[‘成交時間’]>datetime(2018,08,05)]

116、df[(df[‘成交時間’]>datetime(2018,08,05))&(df[‘成交時間’] <datetime(2018,08,15))]

117、cha=datatime(2018,5,21,19,50)-datatime(2018,5,18,17,50)

118、 cha.days#回傳天的時間差

119、 cha.seconds#回傳秒的時間差

120、 cha.seconds/3600#回傳小時的時間差

121、datatime(2018,5,21,19,50)+timedelta(days=1)#往后移一天

122、datatime(2018,5,21,19,50)+timedelta(seconds=20)#往后移20秒

123、datatime(2018,5,21,19,50)-timedelta(days=1)#往前移一天

八、資料透視表

124、df.groupby(‘客戶分類’).count()#客戶分類后求數運算

125、df.groupby(‘客戶分類’).sum()#客戶分類后求和運算

126、df.groupby(‘客戶分類’,’區域分類’).sum()#多列分類后求和運算

127、df.groupby(‘客戶分類’,’區域分類’)[‘ID’].sum()#多列分類后ID求和運算

128、df[‘ID’]#DataFrame取出一列就是Series型別

129、df.groupby(df[‘ID’]).sum() 相當于 df.groupby(‘ID’).sum()

130、df.groupby(‘客戶分類’).aggregate([‘sum’,’count’]# aggregate可實作多種匯總方式

131、df.groupby(‘客戶分類’).aggregate({‘ID’:‘count’,’銷量’: ‘sum’})

132、# aggregate可針對不同列做不同的匯總運算

133、df.groupby(‘客戶分類’).sum().reset_index()#分組匯總后再重置索引,變為標準DataFrame

134、pd.pivot_table(data,values,index,columms,aggfunc,fill_value,margins,dropna,margins_name)

135、資料透視表,data:資料表df,values:值,index:行索引,columns:列索引,aggfunc:values的計算型別,fill_value:對空值的填充方式;margins:是否有合計列;margins_name:合計列的列名

136、pd.pivot_table(df,values=[’ID’,‘銷量’],index=’客戶分類’,columms=‘區域’,aggfunc={‘ID’:‘count’,’銷量’:‘sum’}),fill_value=https://www.cnblogs.com/lmq886/p/0,margins=Ture,dropna=None,margins_name=’總計’)

九、多表格拼接

137、pd.merge(df1,df2)#默認自動尋找兩個表中的公共列進行拼接

138、pd.merge(df1,df2,on=“學號“)#on來指定連接列,連接列要是公共列

139、pd.merge(df1,df2,on=[‘學號’,’姓名’]#on來指定連接列,連接列要是公共列

140、pd.merge(df1,df2,left_on=‘學號’right_on=’編號’) #由公共列,但類名不同時用左右鍵指定

141、pd.merge(df1,df2,left_index=‘學號’right_index=’編號’)#兩表公共列都是索引列時

142、pd.merge(df1,df2,left_index=‘學號’right_on=’編號’)#公共列一個時索引列一個時普通列

143、pd.merge(df1,df2,on=’學號’,how=’inner’)#回傳公共列中對應的公共值拼接(內連接)

144、pd.merge(df1,df2,on=’學號’,how=’left’)#回傳公共列中對應的左表值(左連接)

145、pd.merge(df1,df2,on=’學號’,how=’right’)#回傳公共列中對應的右表值(右連接)

146、pd.merge(df1,df2,on=’學號’,how=’outer’)#回傳公共列中對應的所有值(外連接)

147、pd.concat([df1,df2])#兩個結構相同的表縱向連接,保留原索引值

148、pd.concat([df1,df2],ignore_index=True)#兩個結構相同的表縱向連接,重新設定索引值

149、pd.concat([df1,df2],ignore_index=True).drop_duplicates()#拼接后去掉重復值

十、匯出檔案

150、df.to_excel(excel_writer=r’C:\users\zhoulifu\Desktop\測驗.xlsx’)#匯出檔案格式.xlsx用to_excel方法,通過excel_writer引數來實作

151、df.to_excel(excel_writer=r’C:\users\zhoulifu\Desktop\測驗.xlsx’,sheet_name=’檔案’)

152、df.to_excel(excel_writer=r’C:\users\zhoulifu\Desktop\測驗.xlsx’,sheet_name=’檔案’,index=False)#匯出是去掉索引

153、df.to_excel(excel_writer=r’C:\users\zhoulifu\Desktop\測驗.xlsx’,sheet_name=’檔案’,index=False,columns=[‘ID’,’銷量’,‘姓名’])#設定匯出的列

154、df.to_excel(excel_writer=r’C:\users\zhoulifu\Desktop\測驗.xlsx’,sheet_name=’檔案’,index=False,columns=[‘ID’,’銷量’,‘姓名’],encoding=’utf-8’)#設定匯出的列

155、df.to_excel(excel_writer=r’C:\users\zhoulifu\Desktop\測驗.xlsx’,sheet_name=’檔案’,index=False,columns=[‘ID’,’銷量’,‘姓名’],encoding=’utf-8’,na_rep=0)#缺失值填充

156、writer=pd.ExcelWriter(excelpath,engine=’xlsxwirter’)#匯出多個檔案至一個檔案的多個sheet

157、df1.to_excel(writer,sheet_name=‘表一’)

158、df2.to_excel(writer,sheet_name=’表二’)

159、writer.save()

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/547346.html

標籤:Python

上一篇:Django筆記二之連接資料庫、執行migrate資料結構更改操作

下一篇:希望計算機專業同學都知道這些寶藏博主

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more