新聞中心
Pandas是Python中一個非常強(qiáng)大的數(shù)據(jù)處理庫,它提供了大量的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)分析工具,在本文中,我們將學(xué)習(xí)如何使用Pandas進(jìn)行數(shù)據(jù)的更新操作。

成都創(chuàng)新互聯(lián)公司長期為超過千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為上思企業(yè)提供專業(yè)的成都做網(wǎng)站、網(wǎng)站建設(shè),上思網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
1、安裝Pandas
我們需要安裝Pandas庫,在命令行中輸入以下命令進(jìn)行安裝:
pip install pandas
2、導(dǎo)入Pandas庫
在Python代碼中,我們使用以下語句導(dǎo)入Pandas庫:
import pandas as pd
3、創(chuàng)建DataFrame
我們可以使用字典、列表或者NumPy數(shù)組來創(chuàng)建一個DataFrame,以下是一些示例:
使用字典創(chuàng)建DataFrame
data = {'Name': ['Tom', 'Jerry', 'Mike'],
'Age': [20, 21, 19],
'City': ['New York', 'San Francisco', 'Los Angeles']}
df = pd.DataFrame(data)
使用列表創(chuàng)建DataFrame
data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
df = pd.DataFrame(data, columns=['A', 'B', 'C'])
使用NumPy數(shù)組創(chuàng)建DataFrame
import numpy as np
data = np.array([['Tom', 20, 'New York'],
['Jerry', 21, 'San Francisco'],
['Mike', 19, 'Los Angeles']])
df = pd.DataFrame(data, columns=['Name', 'Age', 'City'])
4、更新數(shù)據(jù)
我們可以使用loc和iloc方法來更新DataFrame中的數(shù)據(jù)。loc方法是基于標(biāo)簽的數(shù)據(jù)選擇方法,而iloc方法是基于位置的數(shù)據(jù)選擇方法,以下是一些示例:
更新單行數(shù)據(jù) df.loc[0, 'Age'] = 22 df.loc[1, 'City'] = 'Chicago' 更新多行數(shù)據(jù) df.loc[1:3, 'Age'] = [23, 24] df.loc[1:3, 'City'] = ['Chicago', 'Houston'] 更新單列數(shù)據(jù) df['Age'] = df['Age'] + 1 df['City'] = df['City'].str.upper() 更新多列數(shù)據(jù) df[['Age', 'City']] = df[['Age', 'City']].apply(lambda x: x + 1) df[['Age', 'City']] = df[['Age', 'City']].apply(lambda x: x.str.upper())
5、刪除數(shù)據(jù)
我們可以使用drop方法來刪除DataFrame中的行或列,以下是一些示例:
刪除單行數(shù)據(jù)
df = df.drop(0)
df = df.drop(1)
刪除多行數(shù)據(jù)
df = df.drop([0, 1])
df = df.drop(df.index[0:2])
刪除單列數(shù)據(jù)
df = df.drop('Age', axis=1)
df = df.drop('City', axis=1)
刪除多列數(shù)據(jù)
df = df.drop(['Age', 'City'], axis=1)
df = df.drop(columns=['Age', 'City'])
6、合并數(shù)據(jù)
我們可以使用concat、merge和join方法來合并DataFrame,以下是一些示例:
垂直合并DataFrame(堆疊)
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3'],
'C': ['C0', 'C1', 'C2', 'C3'],
'D': ['D0', 'D1', 'D2', 'D3']})
df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6', 'A7'],
'B': ['B4', 'B5', 'B6', 'B7'],
'C': ['C4', 'C5', 'C6', 'C7'],
'D': ['D4', 'D5', 'D6', 'D7']})
result = pd.concat([df1, df2], ignore_index=True)
print(result)
水平合并DataFrame(連接)
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'],
'B': ['B0', 'B1', 'B2']})
df2 = pd.DataFrame({'A': ['A3', 'A4', 'A5'],
'B': ['B3', 'B4', 'B5']})
result = pd.merge(df1, df2, on='A') # on參數(shù)指定了連接的鍵值對,默認(rèn)為內(nèi)連接(inner join)方式,還可以使用left、right、outer等參數(shù)指定其他連接方式,print(result) # left join(左連接):保留左側(cè)表中的所有記錄,右側(cè)表中沒有匹配的記錄用NaN填充;right join(右連接):保留右側(cè)表中的所有記錄,左側(cè)表中沒有匹配的記錄用NaN填充;outer join(全連接):保留兩個表中的所有記錄,沒有匹配的記錄用NaN填充,注意:如果兩個表中有相同的列名,需要指定不同的列名或者使用別名,還可以使用how參數(shù)指定連接方式,如how='inner'、how='outer'等,print(result) # how='inner'表示內(nèi)連接;how='outer'表示外連接;how='left'表示左連接;how='right'表示右連接;how='full'表示全連接,print(result) # 如果兩個表中有相同的列名,可以使用suffixes參數(shù)指定后綴名,如suffixes=(None, None)、suffixes=('_x', '_y')等,print(result) # 如果兩個表中有相同的列名,可以使用indicator參數(shù)添加一個指示器列,如indicator=True、indicator=False等,print(result) # 如果兩個表中有相同的列名,可以使用keys參數(shù)指定多個鍵值對進(jìn)行連接,如keys=('key1', 'key2')等,print(result) # 如果兩個表中有相同的列名,可以使用left_on和right_on參數(shù)分別指定左右兩側(cè)表的鍵值對,如left_on='key1'、right_on='key2'等,print(result) # 如果兩個表中有相同的列名,可以使用left_index和right_index參數(shù)分別指定左右兩側(cè)表的索引作為鍵值對進(jìn)行連接,如left_index=True、right_index=True等,print(result) # 如果兩個表中有相同的列名,可以使用sort_values參數(shù)指定排序方式,如sort_values=True、sort_values=False等,print(result) # 如果兩個表中有相同的列名,可以使用ignore_index參數(shù)重置索引,如ignore_index=True、ignore_index=False等,print(result) # 如果兩個表中有相同的列名,可以使用copy參數(shù)復(fù)制一份新的DataFrame進(jìn)行操作,如copy=True、copy=False等,print(result) # 如果兩個表中有相同的列名,可以使用validate參數(shù)指定是否檢查重復(fù)的列名,如validate=True、validate=False等,print(result) # 如果兩個表中有相同的列名,可以使用check_duplicates參數(shù)指定如何處理重復(fù)的列名,如check_duplicates=True、check_duplicates=False等,print(result) # 如果兩個表中有相同的列名,可以使用verbose參數(shù)指定是否顯示詳細(xì)信息,如verbose=True、verbose=False等,print(result) # 如果兩個表中有相同的列名,可以使用error_bad_lines參數(shù)指定如何處理錯誤行數(shù)的情況,如error_bad_lines=True、error_bad_lines=False等,print(result) # 如果兩個表中有相同的列名,可以使用warn_bad_lines參數(shù)指定是否顯示警告信息,如warn_bad_lines=True、warn_bad_lines=False等,print(result) # 如果兩個表中有相同的列名,可以使用keep參數(shù)指定如何處理重復(fù)的列名,如keep='first'、keep='last'等,print(result) # 如果兩個表中有相同的列名,可以使用dtype參數(shù)指定數(shù)據(jù)類型,如dtype={'column1': int, 'column2': float}等,print(result) # 如果兩個表中有相同的列名,可以使用parse_dates參數(shù)指定解析日期格式的列名,如parse_dates=['date']等,print(result) # 如果兩個表中有相同的列名,可以使用date_parser參數(shù)指定解析日期格式的函數(shù),如date_parser=lambda x: datetime.strptime(x, "%Y%m%d")等,print(result) # 如果兩個表中有相同的列名,可以使用index_col參數(shù)指定索引列為哪個列
文章題目:PandasUpdate
分享地址:http://m.fisionsoft.com.cn/article/cdeocos.html


咨詢
建站咨詢
