欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報激活碼778899分享:pandas增刪改查

柚子快報激活碼778899分享:pandas增刪改查

http://yzkb.51969.com/

文章目錄

1.增加? ? ? ?

1.增加數(shù)據(jù)

new_row={'列名':數(shù)據(jù)}

df._append(new_row)

import pandas as pd

# 創(chuàng)建一個空的數(shù)據(jù)庫

df=pd.DataFrame()

# 增加一行數(shù)據(jù)

new_row = {'A':1,'B':2,'C':3}

df = df._append(new_row, ignore_index=True)

print(df)

? ? ? ? ?結(jié)果:

????????????????????????????A ?B ?C ????????????????????????0 ?1 ?2 ?3

2.新增一列數(shù)據(jù)

????????df['新增列名'] =[數(shù)據(jù)]

mport pandas as pd

# 創(chuàng)建一個空的數(shù)據(jù)庫

df=pd.DataFrame()

# 增加一行數(shù)據(jù)

new_row = {'A':1,'B':2,'C':3}

df = df._append(new_row, ignore_index=True)

#print(df)

df['D'] =[4]

print(df)

# 結(jié)果

# A B C D

# 0 1 2 3 4

3.根據(jù)條件來增加數(shù)據(jù)

? ? ? ? ? ? ? ? query('條件')

import pandas as pd

# 創(chuàng)建一個空的數(shù)據(jù)庫

df=pd.DataFrame()

# 增加一行數(shù)據(jù)

new_row = {'A':1,'B':2,'C':3}

df = df._append(new_row, ignore_index=True)

print(df)

# A B C

# 0 1 2 3

df = df.query('B >4')

print(df)

# Empty DataFrame

# Columns: [A, B, C]

# Index: []

df['D'] =[4]

print(df)

# A B C D

# 0 NaN NaN NaN 4

4.根據(jù)索引來增加數(shù)據(jù)

????????1.加了fd.loc['行名'],就是添加行名的數(shù)據(jù)

????????new_row = {'列名':數(shù)據(jù)}

????????fd.loc['行名'] = new_row

????????2.fd.loc[n],n是對第幾行進(jìn)行操作,

????????fd.loc[n] = new_row

????????3.fd['列名']沒有加loc,就是添加列名的數(shù)據(jù)

????????d['列名']=[數(shù)據(jù)]

# import pandas as pd

# # 創(chuàng)建一個空的數(shù)據(jù)庫

# df=pd.DataFrame()

# # 增加一行數(shù)據(jù)

# new_row = {'A':1,'B':2,'C':3}

# df = df._append(new_row, ignore_index=True)

# print(df)

# # A B C

# # 0 1 2 3

# df = df.query('B >4')

# print(df)

# # Empty DataFrame

# # Columns: [A, B, C]

# # Index: []

# df['D'] =[4]

# print(df)

# # A B C D

# # 0 NaN NaN NaN 4

import pandas as pd

# 創(chuàng)建一個數(shù)據(jù)框

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})

print(df)

# A B

# 0 1 4

# 1 2 5

# 2 3 6

# 在索引為0的位置添加一行

# new_row = {'A': 10, 'B': 20}

# df.loc[0] = new_row

# print(df)

# # A B

# # 0 10 20

# # 1 2 5

# # 2 3 6

# 前面注釋,不然一二行都變成10,20

# 說明里面是的幾個【n】,就注釋第n行

# 在索引為1的位置添加一行

new_row = {'A': 10, 'B': 20}

df.loc[1] = new_row

print(df)

# A B

# 0 1 4

# 1 10 20

# 2 3 6

# 在索引為'new_index'的位置添加一行

# 加了loc['行名'],就是添加行名的數(shù)據(jù)

# 沒有加就是添加列名的數(shù)據(jù)

new_row = {'A': 100, 'B': 200}

df.loc['new_index'] = new_row

print(df)

# A B

# 0 1 4

# 1 10 20

# 2 3 6

# new_index 100 200

# 在'C'列末尾添加一列

new_col = [1, 2, 3, 4] # 數(shù)據(jù)的長度應(yīng)與索引的長度相匹配

df['C'] = new_col

print(df)

# A B C

# 0 1 4 1

# 1 10 20 2

# 2 3 6 3

# new_index 100 200 4

?2.刪除

1.刪除數(shù)據(jù)整個數(shù)據(jù)框

????????# 使用del關(guān)鍵字刪除整個數(shù)據(jù)框

????????del df

????????# 使用drop()方法刪除整個數(shù)據(jù)框

????????df.drop(df.index, inplace=True)

2.刪除指定的數(shù)據(jù)

movie.drop(movie[movie['指定的列'] == '指定值'].index,axis=1)

????????# 刪除指定的行(索引為0和1)

????????df.drop([0, 1], inplace=True)

???????? # 刪除指定的列('A'和'B'列)

???????? df.drop(['A', 'B'], axis=1, inplace=True)

?3.刪除有條件的數(shù)據(jù)

????# 使用query方法刪除滿足特定條件的行

????df = df.query('B != "apple"') # 刪除'B'列值為'apple'的行

import pandas as pd

# 創(chuàng)建一個示例數(shù)據(jù)框

df = pd.DataFrame({'A': [1, 2, 3, 4, 5],

'B': ['apple', 'banana', 'cherry', 'apple', 'orange'],

'C': [True, False, True, True, False]})

# 使用query方法刪除滿足特定條件的行

df = df.query('B != "apple"') # 刪除'B'列值為'apple'的行

print(df)

# A B C

# 1 2 banana False

# 2 3 cherry True

# 4 5 orange False

????????# 使用 query 方法篩選滿足條件的行,并通過 loc 方法選擇特定的列

????????result = df.query('條件').loc[ : ,? ['列名'] ]

# 假設(shè)有一個數(shù)據(jù)框 df,包含列 A、B 和 C

df = pd.DataFrame({'A': [1, 2, 3, 4, 5],

'B': [10, 20, 30, 40, 50],

'C': [100, 200, 300, 400, 500]})

# 使用 query 方法篩選滿足條件的行,并通過 loc 方法選擇特定的列

result = df.query('A > 2').loc[:, ['B', 'C']]

print(result)

# B C

# 2 30 300

# 3 40 400

# 4 50 500

3.修改

1.修改指定的數(shù)據(jù)

df.loc[行數(shù),‘列名’] = 數(shù)據(jù)

# 假設(shè)有一個數(shù)據(jù)框 df,包含列 A、B 和 C

df = pd.DataFrame({'A': [1, 2, 3, 4, 5],

'B': [10, 20, 30, 40, 50],

'C': [100, 200, 300, 400, 500]})

# 修改指定位置的數(shù)據(jù)

df.loc[2, 'B'] = 35

print(df)

# A B C

# 0 1 10 100

# 1 2 20 200

# 2 3 35 300

# 3 4 40 400

# 4 5 50 500

2.修改有條件的數(shù)據(jù)

df.loc[df['列名']>(行的條件),‘修改的列’] = 列的數(shù)據(jù)

# 假設(shè)有一個數(shù)據(jù)框 df,包含列 A、B 和 C

df = pd.DataFrame({'A': [1, 2, 3, 4, 5],

'B': [10, 20, 30, 40, 50],

'C': [100, 200, 300, 400, 500]})

# 根據(jù)條件修改數(shù)據(jù)

df.loc[df['A'] > 2, 'C'] = 999

print(df)

# A B C

# 0 1 10 100

# 1 2 20 200

# 2 3 30 999

# 3 4 40 999

# 4 5 50 999

4.查詢

1.指定查詢

quer(‘條件’)[ [查詢的字段] ]

# 假設(shè)有一個數(shù)據(jù)框 df,包含列 A、B 和 C

df = pd.DataFrame({'A': [1, 2, 3, 4, 5],

'B': [10, 20, 30, 40, 50],

'C': [100, 200, 300, 400, 500]})

# 查詢指定列

df_query = df.query('A > 2')[['A', 'C']]

print(df_query)

# A C

# 2 3 300

# 3 4 400

# 4 5 500

2.條件查詢? ? ? ? ? ?

# 假設(shè)有一個數(shù)據(jù)框 df,包含列 A、B 和 C

df = pd.DataFrame({'A': [1, 2, 3, 4, 5],

'B': [10, 20, 30, 40, 50],

'C': [100, 200, 300, 400, 500]})

# 條件查詢

df_filtered = df[(df['A'] > 2) & (df['C'] < 400)]

print(df_filtered)

# A B C

# 2 3 30 300

?3.分組和聚合查詢

df.groupby('列名').聚會函數(shù)

df = pd.DataFrame({'A': [1, 1, 2, 2, 3],

'B': [10, 20, 30, 40, 50],

'C': [100, 200, 300, 400, 500]})

# 按列 A 進(jìn)行分組,并計算每個分組的均值

grouped = df.groupby('A').mean()

# 輸出結(jié)果

print(grouped)

# B C

# A

# 1 15.0 150.0

# 2 35.0 350.0

# 3 50.0 500.0

4.合表查詢

????????????????1.按方向合并 ? ? ? ? ? ? ? ? ? ? ? ? pd.concat((a,b), axis=)

# 假設(shè)有兩個數(shù)據(jù)框 a 和 b

a = pd.DataFrame({'A': [1, 2, 3],

'B': [4, 5, 6]})

b = pd.DataFrame({'C': [7, 8, 9],

'D': [10, 11, 12]})

# 按行方向合并(縱向合并)

concatenated = pd.concat((a, b), axis=0)

# 輸出結(jié)果

print(concatenated)

# A B C D

# 0 1.0 4.0 NaN NaN

# 1 2.0 5.0 NaN NaN

# 2 3.0 6.0 NaN NaN

# 0 NaN NaN 7.0 10.0

# 1 NaN NaN 8.0 11.0

# 2 NaN NaN 9.0 12.0

? ? ? ? ? ? ? ? 2.按索引合并 ? ? ? ? ? ? ? ? ? ? ? ? pd.merge(left,right,how='inner', on=[索引]) ?

# 假設(shè)有兩個數(shù)據(jù)框 df1 和 df2,包含列 key、A 和 B

df1 = pd.DataFrame({'key': ['foo', 'bar', 'baz', 'qux'],

'A': [1, 2, 3, 4],

'B': [5, 6, 7, 8]})

df2 = pd.DataFrame({'key': ['foo', 'bar', 'baz', 'qux'],

'C': [9, 10, 11, 12],

'D': [13, 14, 15, 16]})

# 合并兩個數(shù)據(jù)框,根據(jù) key 列進(jìn)行合并

merged = pd.merge(df1, df2, on='key')

# 輸出結(jié)果

print(merged)

# key A B C D

# 0 foo 1 5 9 13

# 1 bar 2 6 10 14

# 2 baz 3 7 11 15

# 3 qux 4 8 12 16

5.交叉表查詢

pd.crosstab() 函數(shù)用于創(chuàng)建交叉表(cross-tabulation),也稱為列聯(lián)表。它可以統(tǒng)計兩個或多個變量之間的頻數(shù)或頻率,并以表格形式展示。

函數(shù)的語法如下:

pd.crosstab(index, columns, values=None, rownames=None, colnames=None, aggfunc=None) 其中:

index 是要在行方向上進(jìn)行分組的變量; columns 是要在列方向上進(jìn)行分組的變量; values 是可選的,用于指定要聚合的數(shù)據(jù)列; rownames 和 colnames 是可選的,用于指定行和列的名稱; aggfunc 是可選的,用于定義對聚合值進(jìn)行計算的函數(shù),默認(rèn)為計數(shù)。

# 假設(shè)有一個數(shù)據(jù)框 df,包含列 A、B、C 和 D

df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],

'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],

'C': np.random.randn(8),

'D': np.random.randn(8)})

# 創(chuàng)建透視表,按 A 和 B 列分組,并計算 C 和 D 列的均值

pivot_table = df.pivot_table(values=['C', 'D'], index='A', columns='B', aggfunc=np.mean)

# 輸出結(jié)果

print(pivot_table)

# C D

# B one three two one three two

# A

# bar 1.821440 -0.407843 0.114514 0.337398 -1.026214 -0.418785

# foo 0.677367 0.889548 -0.128189 -0.747733 -1.760644 -0.286292

6.透視表查詢

df.pivot_table(values, index, columns, aggfunc='mean', fill_value=None) 其中:

values 是要進(jìn)行聚合的字段或字段列表; index 是用作新表格的索引的字段; columns 是用作新表格列的字段; aggfunc 是指定聚合函數(shù)的參數(shù),默認(rèn)為 'mean'; fill_value 是可選的,用于指定替換缺失值的值。 ?

# 假設(shè)有一個數(shù)據(jù)框 df,包含列 A、B 和 C

df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],

'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],

'C': np.random.randn(8)})

# 創(chuàng)建交叉表,按 A 和 B 列進(jìn)行分組,并計算 C 列的頻次

cross_table = pd.crosstab(index=df['A'], columns=df['B'], values=df['C'], aggfunc='count')

# 輸出結(jié)果

print(cross_table)

# B one three two

# A

# bar 1 1 1

# foo 2 1 2

1.交叉表和透視表的差別

交叉表(crosstab)和透視表(pivot table)是在 Pandas 中用于數(shù)據(jù)分析和匯總的兩種常見操作。它們之間有一些差別,主要體現(xiàn)在以下幾個方面:

數(shù)據(jù)結(jié)構(gòu):交叉表是一個用于計算頻率或統(tǒng)計指標(biāo)的特殊數(shù)據(jù)表格,其中行和列分別表示不同的分類變量,并顯示它們之間的交叉計數(shù)。透視表是根據(jù)一個或多個列中的值對數(shù)據(jù)進(jìn)行聚合,并將它們重塑為新的數(shù)據(jù)表格,其中行和列表示不同的指標(biāo)變量。 聚合方式:交叉表主要用于計算分類變量之間的頻率或交叉計數(shù)。它默認(rèn)使用計數(shù)作為聚合函數(shù),但也可以使用其他聚合函數(shù),如求和、均值等。透視表則是根據(jù)需要選擇不同的聚合函數(shù),可以使用各種聚合函數(shù)進(jìn)行數(shù)據(jù)聚合,如求和、均值、最大值、最小值等。 靈活性:透視表在對數(shù)據(jù)進(jìn)行聚合時更加靈活,可以根據(jù)需求自定義聚合函數(shù)、添加過濾條件、設(shè)置多級索引等。而交叉表相對簡單,主要用于計算頻率或統(tǒng)計指標(biāo),對數(shù)據(jù)的靈活處理能力較弱。

下面是交叉表和透視表的示例代碼:

交叉表示例:

pd.crosstab(index, columns, values=None, rownames=None, colnames=None, aggfunc=None)

# 創(chuàng)建示例數(shù)據(jù)

data = {'Gender': ['Male', 'Female', 'Male', 'Female', 'Male'],

'Age': [20, 25, 30, 35, 40],

'Smoker': ['Yes', 'No', 'No', 'No', 'Yes']}

df = pd.DataFrame(data)

# 計算交叉表

cross_tab = pd.crosstab(df['Gender'], df['Smoker'])

# 輸出結(jié)果

print('-'*28)

print(cross_tab)

# Smoker No Yes

# Gender

# Female 2 0

# Male 1 2

透視表示例:

df.pivot_table(values, index, columns, aggfunc='mean', fill_value=None)

# 創(chuàng)建示例數(shù)據(jù)

data = {'Gender': ['Male', 'Female', 'Male', 'Female', 'Male'],

'Age': [20, 25, 30, 35, 40],

'Smoker': ['Yes', 'No', 'No', 'No', 'Yes']}

df = pd.DataFrame(data)

# 計算透視表

pivot_table = df.pivot_table(index='Gender', columns='Smoker', values='Age', aggfunc='mean')

# 輸出結(jié)果

print('_'*34)

print(pivot_table)

# Smoker No Yes

# Gender

# Female 30.0 NaN

# Male 30.0 30.0

在上面的示例中,交叉表計算了性別和吸煙情況之間的頻率統(tǒng)計,而透視表根據(jù)性別和吸煙情況對年齡進(jìn)行了平均值的匯總。

希望這個解釋有助于理解交叉表和透視表的差異。如果還有其他問題,請隨時提問!

柚子快報激活碼778899分享:pandas增刪改查

http://yzkb.51969.com/

精彩鏈接

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/18905384.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機訪問

文章目錄