python_数据结构基础:DataFrame数据框

excel文件下载地址:
链接:https://pan.baidu.com/s/1EkuKBPKnJW1muAGTVcVj7Q
提取码:dmjn

import pandas as pd
import numpy as np
from pandas import Series, DataFrame


"""
DataFrame数据框 输出类型为DataFrame
二维的表格型数据结构,输出内容与mysql类似,有列名以及行索引。可以将DataFrame理解为Series的容器。
"""
# 方式一:通过字典方式创建
dataf = {'lie1': ['a', 'b', 'c'], 'lie2': [11, 33, 22]}

f1 = DataFrame(dataf)  # 转化为DataFrame形式
print f1
f2 = DataFrame(dataf, columns=['lie1', 'lie2'])  # 自定义输出列顺序
print f2
f3 = DataFrame(dataf, columns=['lie1', 'lie2'], index=['a1', 'a2', 'a3'])  # 自定义索引名称
print f3

# 方式二:通过嵌套字典方式创建
dataf2 = {'lie1': {'hang1': 'py', 'hang2': 'java'}, 'lie2': {'hang1': 20, 'hang2': 30}}
# dataf2 = {'lie1': {'hang1': 'py', 'hang2': 'java'}, 'lie2': {'hang1': 20}}
d1 = DataFrame(dataf2)
print d1
d2 = DataFrame(dataf2, columns=['lie1', 'b', 'c'])  # 生成新的DataFrame,没有定义值的列为NaN
print d2
d2['b'] = Series(['A', 'B'], index=['hang1', 'hang2'])  # 修改某一列的值
d2['c']['hang2'] = 30  # 修改某一个数值
print d2

# 方式三:通过二维数组创建
arr = np.array(np.random.randint(0, 50, 12)).reshape(3, 4)  # 随机生成0-50的12个数字,转化为三行四列
df = pd.DataFrame(arr)
print df
print type(df)

# 统计分析
d1 = pd.Series(3*np.random.normal(size=50)+10)  # 生成50个正态分布的数据,并乘以3,且加10,转化为Series
d2 = np.random.f(2, 5, size=50)  # 从F分布中抽取样本。2为组间自由度,4为组内自由度,50为数量
d3 = np.random.randint(1, 100, size=50)  # 生成50个1-100的整数

d = pd.DataFrame(np.array([d1, d2, d3]).T, columns=['x1', 'x2', 'x3'])
print '3行50列的二维数组:\n', np.array([d1, d2, d3])  # 3行50列的二维数组
print '转置为50行3列的二维数组:\n', np.array([d1, d2, d3]).T  # 转置为50行3列的二维数组
print 'df.head():\n', df.head()


# 定义一个函数:用于生成所有的统计描述指标
def describe_all(xx):
    return pd.Series([xx.count(), xx.min(), xx.idxmin(),
                      xx.quantile(0.25), xx.median(),
                      xx.quantile(0.75), xx.mean(),
                      xx.max(), xx.idxmax(),
                      xx.mad(), xx.var(),
                      xx.std(), xx.skew(), xx.kurt()],
                     index=['Count', 'Min', 'Whicn_Min',
                            'Q1
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值