pandas[2]

pandas1
pandas2


分組操作

GroupBy
參數 描述
by 映射,功能,標籤或標籤列表,用於確定groupby的組。如果by是函數,則調用對象索引的每個值。如果傳遞了dict或Series,則將使用Series或dict VALUES來確定組(系列的值首先對齊;請參閱.align()方法)。如果傳遞了ndarray,則使用這些值來確定組。標籤或標籤列表可以通過列傳遞到組self。請注意,元組被解釋為(單個)鍵。
axis int,默認值為0
level int,level name或其序列,默認為None,如果軸是MultiIndex(分層),則按特定級別或級別分組
as_index boolean,默認為True,對於聚合輸出,返回以組標籤作為索引的對象。僅與DataFrame輸入相關。as_index = False實際上是“SQL風格”的分組輸出
sort 布爾值,默認為True,對組鍵進行排序。關閉它可以獲得更好的性能。請注意,這不會影響每個組內的觀察順序。groupby保留每個組中的行順序。
group_keys 布爾值,默認為True,調用apply時,將組鍵添加到索引以標識片段
squeeze boolean,默認為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 Type Data Description Reader Writer
text CSV read_csv to_csv
text JSON read_json to_json
text HTML read_html to_html
text Local clipboard read_clipboard to_clipboard
binary MS Excel read_excel to_excel
binary HDF5 Format read_hdf to_hdf
binary Feather Format read_feather to_feather
binary Parquet Format read_parquet to_parquet
binary Msgpack read_msgpack to_msgpack
binary Stata read_stata to_stata
binary SAS read_sas
binary Python Pickle Format read_pickle to_pickle
SQL SQL read_sql to_sql
SQL Google Big Query read_gbq to_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)
chunksize讀取大文件:
https://blog.csdn.net/zm714981790/article/details/51375475
https://blog.csdn.net/u012347642/article/details/78555132

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檔
輸出完成

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,258评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,335评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,225评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,126评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,140评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,098评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,018评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,857评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,298评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,518评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,400评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,993评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,638评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,661评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352