import pandas as pd
import numpy ad np
一摔握、獲取dataframe里某一列的值
data = pd.DataFrame(np.arange(16).reshape(4,4),index = list("ABCD"),columns=list('wxyz'))
(1)獲取列“w”的值
方式1:data['w']
方式2:data.get('w')
(2)獲取行A的數(shù)據(jù)
方式1:data.loc['A']
(3)獲取w和x列的所有數(shù)據(jù)
方式:data.loc[:,['w','x']]
(4)獲取列w值為0的數(shù)據(jù)
方式1:data.loc[data.w == 0]
方式2:data[data.w.isin([0])]
方式3:data.loc[data['w'].isin([0])
(5)獲取列w的值大于0的數(shù)據(jù)
方式1:data.loc[data.w > 0]
方式2:data[data.w > 0]
(6)新增一列A产徊,或者修改列A的值
方式1:data['A'] = 666
方式2:通過判斷的方式添加,如果列w的值大于2則新增列A
data['A'] = data.apply(lambda x: 666 if x.w > 2 else 0, axis=1)
data.loc[data.w > 2, 'A'] = 666
data['A'] = np.where(data.x > 2, 666, 0)
方式3:通過計算dataframe的列的值來新增,將列w和x的值相加作為A的值
data['A'] = data.apply(lambda x: x.w + x.x, axis=1)
(7)刷選出dataframe中值為NaN的數(shù)據(jù)
ssss = pd.DataFrame(columns=['A', 'B', 'C'], data=[(1, 2), (1, 2, 3)])
查詢出列C為空的數(shù)據(jù)
result = ssss.loc[lambda x:pd.isnull(x['C'])]
(8)對dataframe的數(shù)據(jù)進行排序操作
ssss = pd.DataFrame(columns=['A', 'B', 'C'], data=[(1, 2), (1, 2, 3)])
按列A進行升序排序
ssss .sort_values(by='A', axis=0, ascending=True, inplace=True)
(9)重置索引(行號)
ssss = pd.DataFrame(columns=['A', 'B', 'C'], data=[(1, 2), (1, 2, 3)])
ssss.reset_index(inplace=True).
(10)刪除
ssss = pd.DataFrame(columns=['A', 'B', 'C'], data=[(1, 2), (2, 2, 3)])
刪除掉列C為NaN的行
result_1 = ssss.dropna(subset=['C'])
刪除列A中值為1的行
result_2 = ssss[-ssss.A.isin(['1'])]
(11)將dataframe數(shù)據(jù)轉(zhuǎn)換為字典等形式
data?=?DataFrame(np.arange(16).reshape(4,?4),?index=list("ABCD"),?columns=list('wxyz'))
print(data)
形式1:??#?將dataframe數(shù)據(jù)轉(zhuǎn)換為字典格式
? ? ? ? ? ? ?#?dict?-?默認值:列名是鍵,值是索引的字典:數(shù)據(jù)對
? ? ? ? ? ? ? ?data_dict1?=?data.to_dict("dict")
print(data_dict1)
形式2:
? ? ? ?#?list?-?鍵是列名,值是列數(shù)據(jù)列表
? ? ? ?data_dict2?=?data.to_dict("list")
? ? ? ? print(data_dict2)
形式3:
? ? ? #?split?-?將列/數(shù)據(jù)/索引拆分為鍵村砂,值分別為列名,數(shù)據(jù)值分別按行和索引標簽
? ? ? data_dict3?=?data.to_dict("split")
? ? ? print(data_dict3)
形式4:
? ? ? #?記錄?-?每一行都成為一個字典屹逛,其中鍵是列名,值是單元格中的數(shù)據(jù)
? ? ? data_dict3?=?data.to_dict("records")
? ? ? print(data_dict3)
形式5:
? ? ? ? #?index?-?類似于'records'汛骂,但是一個字典字典罕模,其中鍵作為索引標簽(而不是列表)
? ? ? ? data_dict?=?data.to_dict("index")
? ? ? print(data_dict)
(12)去重和填充
????????4、去重
????????????????df = df.drop_duplicates()
????????5帘瞭、對含有NaN的行的處理
????????????(1)填充值
????????????????????# 全部填充0
????????????????????df.fillna(0)
????????????????????# 單列填充
????????????????????df['A'] = df['A'].fillna(0)