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