pandas[2]

分組操作

GroupBy
參數描述
by映射,功能,標籤或標籤列表,用於確定groupby的組。如果by是函數,則調用對象索引的每個值。如果傳遞了dict或Series,則將使用Series或dict VALUES來確定組(系列的值首先對齊;請參閱.align()方法)。如果傳遞了ndarray,則使用這些值來確定組。標籤或標籤列表可以通過列傳遞到組self。請注意,元組被解釋為(單個)鍵。
axisint,默認值為0
levelint,level name或其序列,默認為None,如果軸是MultiIndex(分層),則按特定級別或級別分組
as_indexboolean,默認為True,對於聚合輸出,返回以組標籤作為索引的對象。僅與DataFrame輸入相關。as_index = False實際上是“SQL風格”的分組輸出
sort布爾值,默認為True,對組鍵進行排序。關閉它可以獲得更好的性能。請注意,這不會影響每個組內的觀察順序。groupby保留每個組中的行順序。
group_keys布爾值,默認為True,調用apply時,將組鍵添加到索引以標識片段
squeezeboolean,默認為False,如果可能,減少返回類型的維度,否則返回一致類型
observe布爾值,默認為False,這僅適用於任何groupers屬於分類如果為真,如果為False:顯示分類groupers的所有值。

GroupBy 可以將數據分組以便後續操作。

簡單示例:GroupBy
使用seaborn下載數據 GroupBy可以用於迭代 以'key'columns分組將星期分組各組數量
套用計算方法(groupby不能直接套用numpy方法)

只取tip列
多列分組
取得將day的sun與sat改為hailday的數組 sun與sat改為hailday的數組
自訂義分組
將索引重新對應 多重索引資料建立 多重索引資料分組 若要按index可以使用.T轉置資料

Aggregation聚合(匯集)

DataFrame.aggregate
DataFrame.aggregate(func,axis = 0,* args,** kwargs )
aggregate操作

Applying(函數應用)

DataFrame.apply
DataFrame.apply(func,axis = 0,broadcast = None,raw = False,reduce = None,result_type = None,args =(),** kwds )
建立數據 apply操作1 apply操作2 apply的lambda操作(x=a,y=10,z=0)

Transformation(轉換)

分組或列上的轉換返回索引大小與被分組的索引相同的對象。轉換應該返回與數據大小相同的結果。
DataFrame.transform
DataFrame.transform(func, *args, **kwargs)
建立數據 transform操作1 transform操作2

Categorical(分類)

pandas.Categorical
pandas.Categorical(values, categories=None, ordered=None, dtype=None, fastpath=False)

  • 創建
    創建分類1 創建分類2 有序分類排序 分類屬性操作

string(字串)

Pandas的字串處理大部分接受正則表達式(另一個連結),Pandas提供了很多字串處理函數,如下:

String handling
Series.str.capitalize()將Series / Index中的字符串轉換為大寫。
Series.str.cat([others, sep, na_rep, join])使用給定的分隔符連接Series / Index中的字符串。
Series.str.center(width[, fillchar])使用附加字符填充系列/索引中字符串的左側和右側。
Series.str.contains(pat[, case, flags, na, …])測試模式或正則表達式是否包含在系列或索引的字符串中。
Series.str.count(pat[, flags])計算系列/索引的每個字符串中模式的出現次數。
Series.str.decode(encoding[, errors])使用指定的編碼解碼系列/索引中的字符串。
Series.str.encode(encoding[, errors])使用指定的編碼對系列/索引中的字符串進行編碼。
Series.str.endswith(pat[, na])測試每個字符串元素的結尾是否與模式匹配。
Series.str.extract(pat[, flags, expand])對於系列中的每個主題字符串,從正則表達式pat的第一個匹配中提取組。
Series.str.extractall(pat[, flags])對於系列中的每個主題字符串,從正則表達式pat的所有匹配中提取組。
Series.str.find(sub[, start, end])返回Series / Index中每個字符串中的最低索引,其中子字符串完全包含在[start:end]之間。
Series.str.findall(pat[, flags])在系列/索引中查找所有出現的模式或正則表達式。
Series.str.get(i)從指定位置的每個組件中提取元素。
Series.str.index(sub[, start, end])返回每個字符串中的最低索引,其中子字符串完全包含在[start:end]之間。
Series.str.join(sep)使用傳遞的分隔符連接包含在Series / Index中的元素的列表。
Series.str.len()計算系列/索引中每個字符串的長度。
Series.str.ljust(width[, fillchar])使用附加字符填充系列/索引中字符串的右側。
Series.str.lower()將Series / Index中的字符串轉換為小寫。
Series.str.lstrip([to_strip])從左側的系列/索引中的每個字符串中刪除空格(包括換行符)。
Series.str.match(pat[, case, flags, na, …])確定每個字符串是否與正則表達式匹配。
Series.str.normalize(form)返回Series / Index中字符串的Unicode普通表單。
Series.str.pad(width[, side, fillchar])在系列/索引中填充字符串,並在指定的一側添加一個字符。
Series.str.partition([pat, expand])在第一次出現sep時拆分字符串,並返回包含分隔符之前的部分的3個元素,分隔符本身以及分隔符之後的部分。
Series.str.repeat(repeats)按指定的次數複製系列/索引中的每個字符串。
Series.str.replace(pat, repl[, n, case, …])用一些其他字符串替換Series / Index中出現的pattern / regex。
Series.str.rfind(sub[, start, end])返回Series / Index中每個字符串中的最高索引,其中子字符串完全包含在[start:end]之間。
Series.str.rindex(sub[, start, end])返回每個字符串中的最高索引,其中子字符串完全包含在[start:end]之間。
Series.str.rjust(width[, fillchar])使用附加字符填充系列/索引中字符串的左側。
Series.str.rpartition([pat, expand])在最後一次出現sep時拆分字符串,並返回包含分隔符之前的部分的3個元素,分隔符本身以及分隔符之後的部分。
Series.str.rstrip([to_strip])從右側的系列/索引中的每個字符串中刪除空格(包括換行符)。
Series.str.slice([start, stop, step])從系列/索引中的每個元素切片子串
Series.str.slice_replace([start, stop, repl])用另一個值替換字符串的位置切片。
Series.str.split([pat, n, expand])在給定的分隔符/分隔符周圍拆分字符串。
Series.str.rsplit([pat, n, expand])通過給定的分隔符字符串拆分Series / Index中的每個字符串,從字符串的末尾開始並向前工作。
Series.str.startswith(pat[, na])測試每個字符串元素的開頭是否與模式匹配。
Series.str.strip([to_strip])從左側和右側剝離系列/索引中每個字符串的空白(包括換行符)。
Series.str.swapcase()將Series / Index中的字符串轉換為swapcased。
Series.str.title()將系列/索引中的字符串轉換為標題。
Series.str.translate(table[, deletechars])通過給定的映射表映射字符串中的所有字符。
Series.str.upper()將Series / Index中的字符串轉換為大寫。
Series.str.wrap(width, **kwargs)將Series / Index中的長字符串換行,以長度小於給定寬度的段落格式化。
Series.str.zfill(width)使用0填充Series / Index中字符串的左側。
Series.str.isalnum()檢查Series / Index中每個字符串中的所有字符是否為字母數字。
Series.str.isalpha()檢查Series / Index中每個字符串中的所有字符是否都是字母。
Series.str.isdigit()檢查Series / Index中每個字符串中的所有字符是否為數字。
Series.str.isspace()檢查Series / Index中每個字符串中的所有字符是否都是空格。
Series.str.islower()檢查Series / Index中每個字符串中的所有字符是否都是小寫。
Series.str.isupper()檢查Series / Index中每個字符串中的所有字符是否都是大寫。
Series.str.istitle()檢查Series / Index中每個字符串中的所有字符是否都是標題。
Series.str.isnumeric()檢查Series / Index中每個字符串中的所有字符是否都是數字。
Series.str.isdecimal()檢查Series / Index中每個字符串中的所有字符是否為十進制。
Series.str.get_dummies([sep])用sep拆分Series中的每個字符串,並返回一個虛擬/指示變量框。

範例

Date(日期)

python的Date和Time功能
python的Date和Time官方文檔1
python的Date和Time官方文檔2
numpy日期
pandas時間序列/日期功能

  • 時間類型
    時間類型

  • 時間偏移週期

別名描述
B工作日頻率
C自定義工作日頻率
D日曆日頻率
W每週頻率
M月末頻率
SM半月結束頻率(15日和月末)
BM營業月結束頻率
CBM自定義營業月結束頻率
MS月開始頻率
SMS半月開始頻率(第1和第15)
BMS營業月開始頻率
CBMS自定義營業月開始頻率
Q四分之一結束頻率
BQ業務季度結束頻率
QS季度開始頻率
BQS業務季開始頻率
A, Y年終頻率
BA, BY業務年度結束頻率
AS, YS年開始頻率
BAS, BYS營業年度開始頻率
BH營業時間頻率
H每小時頻率
T, min每分鐘的頻率
S每秒頻率
L, ms毫秒
U, us微秒
N納秒
  • 建立
    創建日期1 創建日期2

  • 轉換
    轉換日期1 轉換日期2

讀寫檔案

Pandas讀寫文檔

Format TypeData DescriptionReaderWriter
textCSVread_csvto_csv
textJSONread_jsonto_json
textHTMLread_htmlto_html
textLocal clipboardread_clipboardto_clipboard
binaryMS Excelread_excelto_excel
binaryHDF5 Formatread_hdfto_hdf
binaryFeather Formatread_featherto_feather
binaryParquet Formatread_parquetto_parquet
binaryMsgpackread_msgpackto_msgpack
binaryStataread_statato_stata
binarySASread_sas
binaryPython Pickle Formatread_pickleto_pickle
SQLSQLread_sqlto_sql
SQLGoogle Big Queryread_gbqto_gbq
csv

1)讀
pandas.read_csv
pandas.read_csv(filepath_or_buffer, sep=’, ‘, delimiter=None, header=‘infer’, names=None, index_col=None, usecols=None, squeeze=False, prefix=None, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, iterator=False, chunksize=None, compression=‘infer’, thousands=None, decimal=b’.’, lineterminator=None, quotechar=’"’, quoting=0, escapechar=None, comment=None, encoding=None, dialect=None, tupleize_cols=None, error_bad_lines=True, warn_bad_lines=True, skipfooter=0, doublequote=True, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None)

2)寫
DataFrame.to_csv
DataFrame.to_csv(path_or_buf=None, sep=’, ‘, na_rep=’’, float_format=None, columns=None, header=True, index=True, index_label=None, mode=‘w’, encoding=None, compression=None, quoting=None, quotechar=’"’, line_terminator=’\n’, chunksize=None, tupleize_cols=None, date_format=None, doublequote=True, escapechar=None, decimal=’.’)
Series.to_csv
Series.to_csv(path=None, index=True, sep=’, ‘, na_rep=’’, float_format=None, header=False, index_label=None, mode=‘w’, encoding=None, compression=None, date_format=None, decimal=’.’)

3)讀寫範例
原始資料:
原始資料:

讀取資料:
讀取資料

轉成直式:
轉成直式

刪除重複值、排序、計數:

np.unique(df,return_counts=True)
np.unique(刪除重覆值),return_counts=True(計數)
輸出一個元組(整理後的值,對應的計數)

刪除重複值、排序、計數

加上columns:
加上columns標題

輸出csv檔:
輸出csv檔 輸出完成

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值