#获取九月份数据的几种方法 #方法一 使用行索引切片,['2019/9/1':'2019/9/30'],缺点是要求日期必须是连续的。为了方便查看取前5条,以下其他方法均取前5条,由于未进行排序,顺序会有差异 df.set_index('日期',inplace=True) print(df['2019/9/1':'2019/9/30'].head()) #或者print(df.loc['2019/9/1':'2019/9/30',:]) 最高温度 最低温度 天气 风向 风级 空气质量 2019/9/1 33℃ 19℃ 多云~晴 西南风 2级 良 2019/9/2 34℃ 20℃ 晴 南风 2级 良 2019/9/3 33℃ 20℃ 晴 东南风 2级 良 2019/9/7 34℃ 21℃ 晴 西南风 2级 良 2019/9/8 35℃ 22℃ 晴~多云 东北风 2级 良 #方法二 利用列表生成式和startwith('2019/9')生成bool列表,缺点,比较麻烦。 print(df.loc[[True if i.startswith('2019/9') else False for i in df.index.tolist()],:].head()) 最高温度 最低温度 天气 风向 风级 空气质量 2019/9/4 32℃ 19℃ 晴 东南风 2级 良 2019/9/5 33℃ 20℃ 晴 东南风 2级 良 2019/9/6 33℃ 20℃ 晴 东南风 1级 良 2019/9/1 33℃ 19℃ 多云~晴 西南风 2级 良 2019/9/2 34℃ 20℃ 晴 南风 2级 良 #方法三 利用pandas的str和startswith('2019/9')|contains('2019/9')。 df1 = pd.read_csv('./TianQi.csv') print(df1[df1['日期'].str.startswith('2019/9')].head()) 日期 最高温度 最低温度 天气 风向 风级 空气质量 243 2019/9/4 32℃ 19℃ 晴 东南风 2级 良 244 2019/9/5 33℃ 20℃ 晴 东南风 2级 良 245 2019/9/6 33℃ 20℃ 晴 东南风 1级 良 246 2019/9/1 33℃ 19℃ 多云~晴 西南风 2级 良 247 2019/9/2 34℃ 20℃ 晴 南风 2级 良 #方法四 讲日期转换成datetime类型 df1['日期'] = pd.to_datetime(df1['日期']) df1.set_index('日期',inplace=True,drop=True) #print(df1['2019']) #取2019年数据,或者df.loc['2019'] print(df1['2019/09'].head()) 取201909月数据,其他变形写法df['2019-9'] df['2019-09'] df['2019/9'] df.loc['2019-9',:] df.loc['2019-09',:] df.loc['2019/09',:] df.loc['2019/9',:] 最高温度 最低温度 天气 风向 风级 空气质量 2019-09-04 32℃ 19℃ 晴 东南风 2级 良 2019-09-05 33℃ 20℃ 晴 东南风 2级 良 2019-09-06 33℃ 20℃ 晴 东南风 1级 良 2019-09-01 33℃ 19℃ 多云~晴 西南风 2级 良 2019-09-02 34℃ 20℃ 晴 南风 2级 良 #注意如果要获取某一天的数据,则必须使用切片,比如df['2019/9/1':'2019/9/1'] 获取一段时间 df1.truncate(after = '2019-9-01') # 返回 after 以前的数据 df1.truncate(before = '2019-9-01') # 返回 before 以后的数据 df1['20190901':'2019/9/10'] #方法五 #读取文件时,通过parse_dates=['日期'],将日期转化为datetime类型,相当于 pd.to_datetime。同时可以使用index_col将那一列作为的行索引,相当有set_index。 df2 = pd.read_csv('./TianQi.csv',parse_dates=['日期']) df2['年'] = df2['日期'].dt.year df2['月'] = df2['日期'].dt.month qstr = "年=='2019' and 月=='9'" print(df2.query(qstr).head()) 日期 最高温度 最低温度 天气 风向 风级 空气质量 年 月 243 2019-09-04 32℃ 19℃ 晴 东南风 2级 良 2019 9 244 2019-09-05 33℃ 20℃ 晴 东南风 2级 良 2019 9 245 2019-09-06 33℃ 20℃ 晴 东南风 1级 良 2019 9 246 2019-09-01 33℃ 19℃ 多云~晴 西南风 2级 良 2019 9 247 2019-09-02 34℃ 20℃ 晴 南风 2级 良 2019 9 dt的其他常用属性和方法如下: df['日期'].dt.day # 提取日期 df['日期'].dt.year # 提取年份 df['日期'].dt.hour # 提取小时 df['日期'].dt.minute # 提取分钟 df['日期'].dt.second # 提取秒 df['日期'].dt.week # 一年中的第几周 df['日期'].dt.weekday # 返回一周中的星期几,0代表星期一,6代表星期天 df['日期'].dt.dayofyear # 返回一年的第几天 df['日期'].dt.quarter # 得到每个日期分别是第几个季度。 df['日期'].dt.is_month_start # 判断日期是否是每月的第一天 df['日期'].dt.is_month_end # 判断日期是否是每月的最后一天 df['日期'].dt.is_leap_year # 判断是否是闰年 df['日期'].dt.month_name() # 返回月份的英文名称 df['日期'].dt.to_period('Q') # M 表示月份,Q 表示季度,A 表示年度,D 表示按天 df['日期'].dt.weekday_name # 返回星期几的英文 由于pandas版本问题,改变pandas版本在cmd中输入:pip install --upgrade pandas==0.25.3 Series.dt.normalize() # 函数将给定系列对象中的时间转换为午夜。 代码示例:import pandas as pd#读取文件df = pd.read_csv('./TianQi.csv')#获取九月份数据的几种方法#方法一 使用行索引切片,['2019/9/1':'2019/9/30'],缺点是要求日期必须是连续的。为了方便查看取前5条,以下其他方法均取前5条,由于未进行排序,顺序会有差异df.set_index('日期',inplace=True)print(df['2019/9/1':'2019/9/30'].head()) #或者pr data[' Date '] = pd.to_ datetime (data[' Date ']) data = data[(data[' Date '] >=pd.to_ datetime ('20120701')) & (data[' Date '] <= pd.to_ datetime ('20120831'))] Created on 2019年1月3日 @author: hcl import pandas as pd import matplotlib.pyplot as plt data_path = 'one_20axyz.csv import pandas as pd data = pd.read_csv('police.csv') #将stop_ date 转化为 datetime 的格式的dataframe,存到stop_ datetime data['stop_ datetime '] = pd.to_ datetime (data.stop_ date ') #自定义一个时间,计算时间差 data_new = pd.to_ datetime ('2006-01-01') data['time_d'] = time_new - data.stop_ datetime data['time_
-- 截取 后得到的仍为 date 数据 类型 select trunc(sys date ) from dual;--2017-03-13 00:00:00select trunc(sys date +1) from dual;--2017-03-14 00:00:00 加一天 select trunc(sys date ,'yyyy') from dual;--2017-01-01 00:00:00select...
Pandas 中,可以使用 `.loc[]` 方法 提取 某一行的文本 数据 。假设我们有一个名为 ` df ` 的 Pandas DataFrame,其中包含文本 数据 的列为 `text_data`,那么可以使用以下代码 提取 第一行的文本 数据 : ```python text = df .loc[0, 'text_data'] 其中 `0` 表示要 提取 的行号,`'text_data'` 表示要 提取 的列名。如果要 提取 多行的文本 数据 ,可以使用切片语法: ```python texts = df .loc[0:4, 'text_data'] 其中 `0:4` 表示要 提取 的行号 范围 ,包括第 0 行和第 4 行。 提取 的结果将会是一个 Pandas Series 对象,其中包含了所有行的文本 数据
df.loc["2019-09"] df.loc["2019/09"] df[df.index.date == pd.Timestamp("2019-09")] #慢,后续版本将不支持这种写法, df[df.index.date == dt.date(2019,09,01)] 以上好像都可以 matplotlib绘制条形图(bar、设置不同的颜色、设置每个条形图文字) weixin_42870762: 那不同颜色对应的图例怎么设置呢? Python:使用tkinter和shelve实现本地数据的简单存储、显示、查询、更新操作 坚持就是胜利,大洪: 能放个效果图出来多好,学习了 Vue EventBus事件侦听($on、$emit、$off、$once) weixin_57162393: 点击发出消息是点了四次吗?然后后面两个因为once导致只有后面的on在执行还是??只是点击了一“点击发出消息”