其他分享
首页 > 其他分享> > Pandas 读取输出文件 + 数据查询

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