ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Pandas 读取输出文件 + 数据查询

2022-03-06 14:01:42  阅读:206  来源: 互联网

标签:loc 01 读取 df 查询 2018 label Pandas


1)读取输出文件

import pandas as pd
# 1)读取csv
df = pd.read_csv(path)
df.head()		 # 查看前几行数据
df.shape		# 查看数据的形状,返回(行数,列数)
df.columns		# 查看列名列表
df.index		# 查看索引列
df.dtypes		# 查看每列数据类型
df.to_csv(path)

# 2)读取txt文件
df = pd.read_txt(
            file_path,
            sep='y',
            header=None,
            names=['pdate', 'pv', 'uv']			# 指定数据列名
        )

# 3)读取excel文件
df = pd.read_excel(file_path)
df.to_excel(path, sheet_name='Your Sheet Name')

# 4)读取mysql数据表
import pymysql
conn = pymysql.connect(
	host='127.0.0.1',
	user='root',
	password='kingshen2',
	database='learn',
	charset='utf8'
        )
result = pd.read_sql('select * from tb_book', con=conn)

2)数据查询

import pandas as pd
# 1)使用单个label值进行查询数据:   
 df.loc[2]		# 默认对为2的索引进行查询
df.loc['2018-01-03', 'bWendu']		# 查询单行和单列   label值和列 
df.loc['2018-01-03', ['bWendu', 'yWendu']]		# 查询单行和多列 label值和多列

# 2)使用值列表批量查询:
 df.loc[['2018-01-01', '2018-01-02', '2018-01-03'], 'bWendu']		# 查询多行和单列 多个label值和列
df.loc[['2018-01-01', '2018-01-02', '2018-01-03'], ['bWendu', 'yWendu']]		# 查询多行和多列 多个label值和多列

# 3)对传入数据区间进行范围查询,包含开始和结束:
df.loc['2018-01-01':'2018-01-03', 'bWendu']		# 行区间查询 label区间和单列
df.loc['2018-01-01', 'bWendu': 'fengxiang']		# 列区间查询 单个label和列区间
df.loc['2018-01-01':'2018-01-03', 'bWendu': 'fengxiang']		# 行和列区间查询 label区间和列区间

# 4)使用条件表达式查询:
df.loc[df['yWendu']<0, :]		# 最低温度小于0度,如果不对label值进行限制,后面为 : 表示全部区间

# 5)复杂查询 & | !,每个判断条件都需要带括号:
df.loc[(df['bWendu'] <= 0) & (df['yWendu'] <= 0) & (df['tianqi']=='多云'), :]

# 7)调用函数查询    本质上也是复杂查询:
df.loc[lambda df: (df['bWendu']<0) & (df['yWendu'] <0), :]

# 6)自定义函数进行查询     索引为ymd  可以同时对标签和列进行限制:
def query_my_weather(df):
	return df.index.str.startswith('2018-01') & df['aqiLevel']==1
df.loc[query_my_weather, :]

标签:loc,01,读取,df,查询,2018,label,Pandas
来源: https://www.cnblogs.com/wangshuang57/p/pandas_search.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有