Python-科學計算-pandas-19-df分組上中下旬
系統:Windows 10
語言版本:conda 4.4.10
編輯器:JetBrains PyCharm Community Edition 2018.2.2 x64
pandas:0.22.0
- 這個系列講講Python的科學計算及視覺化
- 今天講講pandas模組
- 按照時間列,得出每行屬於上中下旬,進而對df進行分組
Part 1:場景描述
- 已知df,包括3列,
["time", "pos", "value1"]
- 根據time列的結果對df進行分組,分為上旬、中旬、下旬三組
- 分組規則,設定如下(這裡只是假設一種分法,官方分法請查閱相關資料):
- 每月10號之前(包括10號)為上旬,對應數學表示式為:x ≤10
- 每月10-20號為中旬,對應數學表示式為:10<x ≤20
- 每月20號之後為下旬,不包括20號,對應數學表示式為:x >20
df
Part 2:程式碼邏輯
- 新生成time1列,該列是time列對應的日期格式資料
- 生成一個新列flag,為time1列對應的具體幾號(取值範圍1-31)
- 對flag進行判斷,將結果寫入xun列
- 根據xun列進行過濾,獲取對應資料
Part 3:程式碼
import pandas as pd
import numpy as np
# 顯示所有列
pd.set_option('display.max_columns', None)
# 顯示所有行
pd.set_option('display.max_rows', None)
# 設定顯示長度為100
pd.set_option('max_colwidth', 100)
# 設定對齊
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
# 設定列印寬度
pd.set_option('display.width', 180)
dict_1 = {"time": ["2019-11-02", "2019-11-15", "2019-11-25", "2019-11-05",
"2019-12-13", "2019-12-03", "2019-12-16", "2019-12-29"],
"pos": ["A", "A", "B", "B", "C", "C", "C", "D"],
"value1": [10, 20, 30, 40, 50, 60, 70, 80]}
df = pd.DataFrame(dict_1, columns=["time", "pos", "value1"])
print("\n", "df", "\n", df, "\n", df.dtypes)
df["time1"] = pd.to_datetime(df['time'])
print("\n", "df", "\n", df, "\n", df.dtypes)
# 獲取年月日資訊
df["年"] = df["time1"].dt.year
df["月"] = df["time1"].dt.month
df["日"] = df["time1"].dt.day
df["時"] = df["time1"].dt.hour
df["分"] = df["time1"].dt.minute
df["秒"] = df["time1"].dt.second
df["flag"] = df["日"]
df["xun"] = np.where((df["flag"] > 10) & (df["flag"] <= 20), "中旬", np.where(df["flag"] <= 10, "上旬", "下旬"))
print("\n")
print(df)
df_1 = df[df["xun"] == "上旬"]
print("\n")
print(df_1)
df_1 = df[df["xun"] == "中旬"]
print("\n")
print(df_1)
df_1 = df[df["xun"] == "下旬"]
print("\n")
print(df_1)
程式碼截圖
Part 4:部分程式碼解讀
df["time1"] = pd.to_datetime(df['time'])
時間格式轉換,新生成的資料型別為datetime64
時間格式轉換
2. df["日"] = df["time1"].dt.day
獲取日期對應的具體幾號
3.df["xun"] = np.where((df["flag"] > 10) & (df["flag"] <= 20), "中旬", np.where(df["flag"] <= 10, "上旬", "下旬"))
,兩重判斷
- np.where(條件,滿足條件結果,不滿足條件結果)
- 支援巢狀,有點VBA公式的感覺
- 對flag
列的每個元素進行計算,結果為xun
4. df_1 = df[df["xun"] == "上旬"]
獲取上旬資料
本文為原創作品,歡迎分享朋友圈
長按圖片識別二維碼,關注本公眾號
Python 優雅 帥氣
相關文章
- NumPy科學計算庫
- (資料科學學習手札99)掌握pandas中的時序資料分組運算資料科學
- Python-學習計劃Python
- 【重學計算機】計算機組成原理計算機
- [python][科學計算][matplotlib]使用指南Python
- [python][科學計算][pandas]使用指南Python
- [python][科學計算][numpy]使用指南Python
- Wolfram Mathematica 13(科學計算軟體)
- python-元組Python
- Python-模組Python
- 電腦科學的學科分類
- Python科學計算之Numpy陣列生成與運算Python陣列
- 專科學歷去學計算機,前景到底如何?計算機
- Python科學測量與計算庫Pymeasure: 控制你的儀器進行自動測試和科學計算Python
- 美國國家科學學院:地球上的生物分佈
- Calculator N+:一款智慧手機上的開源科學計算器
- python-進階教程-根據欄位將記錄分組Python
- 《計算機與電腦科學》摘錄筆記計算機筆記
- 資料分析與資料探勘 - 04科學計算
- 計算機學科國內外會刊評級計算機
- PowerBI_一分鐘學會利用ALLEXCPET分組計算(以計算門店開業前3天銷售金額為例)
- SQL 如何計算每個分組的中位數SQL
- 學習雲端計算簡單嗎?專科生學習雲端計算就業前景如何?就業
- 【POJ 2249】 Binomial Showdown 組合數學 排列組合計算
- PTA乙級_1024 科學計數法 (20分)_pythonPython
- (資料科學學習手札84)基於geopandas的空間資料分析——空間計算篇(上)資料科學
- 計算機組成原理學習 Part 2計算機
- WaveMetrics Igor Pro 9 科學計算和資料分析工具Go
- 專科生學習雲端計算就業前景如何?就業
- Python為何在科學計算領域打敗Fortran? - cerfacsPython
- 計算機組成原理 - 計算篇計算機
- 計算機科班生學計算機組成原理的意義何在呢?計算機
- 科學計算器學生時代小作品原始碼(C++版)原始碼C++
- 【PAT乙級、C++】1024 科學計數法 (20分)C++
- 虛擬現實、生命科學、科學計算對人類生活的影響都已逐步顯現
- 計算機組成原理學習 筆記一計算機筆記
- Anaconda 2019.03 釋出,Python 跨平臺科學計算軟體Python
- Wolfram Mathematica 13 for Mac(功能廣泛的科學計算軟體)Mac