對於一種資料結構,最基本的操作就應該是增刪改查了。行選擇和列選擇有許多方法,很容易記混,常用的要記住。
主要方法有三種:iloc
,loc
,
df.loc["index1" : "index2", ["price"]]
df.iloc[a:b]['price']
1234567
s.sample(frac=0.5)// 引數
// 預設選擇行,n = 行數, frac = 比例
// replace: 預設false 無放回取樣
// weights: 樣本取樣權重
// axis: 預設=0 行, =1 列
// random_state=2
1234567
891011
1213
14
# 降取樣 -- 分類抽樣def subsample(df_x, splitattribute = "attribute4"):
subsamplenum = min(df_x.groupby(splitattribute).size())
print(subsamplenum)
df_x_sub = df_x.iloc[1:2,:]
#df_y_sub = df_y.iloc[1:2,:]
for label in df_x[splitattribute].unique():
tmp_x = df_x[df_x[splitattribute] == label]
random_list = random.sample(range(0,len(tmp_x)),subsamplenum )
return df_x_sub #, df_y_sub
單列
12345
// 末尾增加df["new col"] = none
// 指定位置增加,在2列後
df.insert(2,'city')
多列
pd.concat([df, pd.dataframe(columns=["c","d"])])
單行(待驗證)
12345
// loc 新增df.loc[『5『] = [3, 3, 3, 3]
// set_value 新增
df.set_value(『5『, df.columns, [3,3,3,3], takeable=false)
多行多行相當於合併兩張表了,可以參考(merge,concat)方法。
test_ = pd.merge(tmp, data.loc[:,["customer_id", "label"]],on=['customer_id'],how='left',copy=false")
列
1234567
8910
// del 方法def df["col_name"]
//根據列名 drop 方法
df.drop(["b", "c"], axis=1,inplace = true)
axis = 1 列
axis = 0 行
// 根據列號 drop 方法
df.drop(df.columns[[1,2]], axis=1, inplace=true)
行
12345
// 根據索引 刪除行df = df.drop([1, 2])
// 根據value 刪除行
df = df[~df["col"].isin(5,9)
按照條件刪除行
1
df.drop(df[df["order_pay_time"] < pd.to_datetime("2013-11-12 23:59:44") ].index)
單值修改和查詢時, 參考選擇行列方法。按條件查詢多值查詢時,
df_train[( df_train["row"] == 1) &( == "null")]
query 查詢
df.query('(a < b) & (b < c)')
替換
單個替換,inplace = true 覆蓋原始檔
df.replace(to_replace, value, inplace = true)
多值替換—-字典
df.replace()
按條件替換
df.where(df > 0, -df, inplace=true)
交換兩列的位置
1
df[['b', 'a']] = df[['a', 'b']]
pandas 2列資料合併
1 其中的trans type trans class兩列合成一列用於模糊查詢,並建立新的列。df trans type class df trans type df trans class 注 但是某一列如果為空,另一列不為空,則合併結果是為空,所以在合併之前需要對na進行預處理,替換或者刪除。2...
機器學習之 Pandas 2
從網頁裡抓取資料並進行操作 import numpy as np import pandas as pd from pandas import series,dataframe import webbrowser linkur2 webbrowser.open linkur2 開啟網頁 在網頁中複製...
pandas資料選擇(索引)
import pandas as pd import numpy as npdates pd.date range 20180101 periods 6 df pd.dataframe np.arange 24 reshape 6,4 index dates,columns a b c d prin...