美文网首页
Pandas 基本操作

Pandas 基本操作

作者: 杜小啥 | 来源:发表于2019-03-08 09:56 被阅读0次

文件读取

# csv Excel 读
df = pd.read_csv("/dir", header=0, sep="|", index_col=False)
df = pd.read_excel("excel_file")
# 导出 Excel
df.to_excel('/dir', index=True,encoding='utf-8',sheet_name='Sheet')
df.to_csv("data.csv", sep=",", index=False)

预览、定位选择

# 预览
df.index
df.columns
df.head(10)
df.tail(10)
df.info()   #特征信息
df.describe()  #统计信息

# 选择行、列
df.loc[index_name, col_name] 
# 基于标签(label,行标签(index)和列标签(columns))选择数据行
# 1.使用单个标签。如果.loc[]中只有单个标签,那么选择的是某一行,标签值为 index 的值而非序号
# 2.标签 list ([,])或切片 [:]
# 3.布尔值 df.loc[df.rev>100, ['col_name']]
df.iloc[index_seq, col_name]



排序

pd.sort_index()
pd.sort_values('xx', ascending=True)
# 合并单元格导出、多层索引排序
rst.set_index(["SINGER1","SINGER2","singer_cnt","LANG"], inplace=True)
rst.sort_index(level='singer_cnt',ascending=False)

修改列名

pd.columns = []
df.rename(columns={'a':'A'}, inplace=True)

不采用科学计数

pd.set_option('display.float_format', lambda x: '%.5f' % x)

行转列

# 将 stat_date 按行组织
# pivot(index,columns,values)
db_mid_daily_rev.pivot('mid', 'stat_date', 'rev').fillna(0)
# 注意 db_mid_daily_rev 不能设置 'mid' 为 index

# 如果 index 对应 column 出现重复,需使用 pivot_table
d.pivot_table(index='Item', columns='CType', values='USD', aggfunc=np.min)

https://nikgrozev.com/2015/07/01/reshaping-in-pandas-pivot-pivot-table-stack-and-unstack-explained-with-pictures/

运算

df['col2'] = df['col1'].map(lambda x: x**2)
df['col3'] = df.apply(lambda x: x['col1'] + 2 * x['col2'], axis=1)
# 筛选
usr[(usr['TOT_CNSM_AMT']<=80000)]
# 聚合函数
x['count'].sum()
df['col2'] = df.groupby('col1').agg({'col1':{'col1_mean': mean, 'col1_sum‘’: sum}, 'col2': {'col2_count': count}})
## 累加(先排序,然后对其中一列累加)
city_cnt_one.sort_values('join_time')['count'].cumsum()

读取文本初始化 DataFrame 并进行聚合运算

#!/usr/bin/env python3
# coding=utf-8
import csv
from functools import reduce
from pandas.core.frame import DataFrame

kv = []
with open('x.txt', 'r') as f:
  for line in f.readlines():
    l = line.split('|')
    kv.append(['|'.join(l[0:3]),l[3].split(':')[0],l[4],l[5].strip()] )

x = DataFrame(kv)
print(x.groupby(0).agg({1:min,2:min,3:max}))
#y = x.groupby(0).agg({1:min,2:min,3:max})
#y.to_csv('y.txt', sep='&', header=False, quoting=csv.QUOTE_NONE, escapechar='&')
rst = x.groupby(0).agg({1:min,2:min,3:max})
with open('rst.txt', 'w') as f:
  for idx, row in rst.iterrows():
    f.write(idx + '|' + '|'.join([row[1],row[2],row[3]]) + '\n')

相关文章

  • Pandas基本操作

    数据框的创建 参数说明data数据, 用字典表示, 默认为空index索引, 方便快速找到某个数据, 可以用列表/...

  • Pandas 基本操作

    文件读取 预览、定位选择 排序 修改列名 不采用科学计数 行转列 运算 读取文本初始化 DataFrame 并进行...

  • pandas使用方法及相关函数记录1

    pandas使用方法记录总结 基本操作记录 查看pandas版本 查看pandas及相关库版本 创建DataFra...

  • pandas 基本操作记录

    读写 创建DataFramedf = pd.DataFrame(dict,index=[ ]) #从字典df = ...

  • nympy/pandas基本操作

    NumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函...

  • pandas 基本操作1.0

    pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的 #对数组处理#兼容各种数据库#支持...

  • pandas 基本操作2.0

    Dataframe:基本概念及创建 Dataframe 数据结构 Dataframe是一个表格型的数据结构,“带有...

  • pandas基本操作——1

    这里来介绍一下pandas。由于知识点比较多,决定分几篇介绍。

  • Pandas, dataframe 基本操作

    连接 axis 默认为0 表示按行连接,如果按列连接,axis=1注意:按行连接会导致索引异常(还会保留原来的索引...

  • Pandas索引基本操作

    公众号:尤而小屋作者:Peter编辑:Peter 大家好,我是Peter~ 本文主要是记录Pandas中单层索引的...

网友评论

      本文标题:Pandas 基本操作

      本文链接:https://www.haomeiwen.com/subject/byulpqtx.html