Python数据分析——Pandas第二天之DataFrame表型数据结构

DataFrame(表型数据结构,二维数组,既有行索引也有列索引,可以看成是由若干个Series组成)

DataFrame组成结构:pandas.DataFrame(data, index, column, dtype, copy)
data:一组数据,每列都可以是不同类型的值
index:设置索引值,即:行标签
columns:设置列标签,当设置columns时行与列转置
dtype: 数据类型, 当前的格式设置的是整个数据表
copy: 是否拷贝数据,默认是FALSE

data为字典类型

import pandas as pd

data = {
    'id': [12, 15, 18],
    'name': ['Laotian', 'Xiaoping', 'xiaomi'],
    'grades': [88, 99, 66],
    'like': ['羽毛', '足球', '篮球']
}
df = pd.DataFrame(data) # 按照源数据的格式转换成数据表
print(f"行索引为0,1,2:\n{df}")

# 输出结果:
#行标为0,1,2:
#   id      name    grades  	like
#0  12   Laotian      88    	羽毛
#1  15  Xiaoping      99    	足球
#2  18    xiaomi      66   	篮球

data为列表格类型时,设置行index、列column索引

import pandas as pd
data1 = [
    [12, 15, 18],
    ['Laotian', 'Xiaoping', 'xiaomi'],
    [88, 99, 66],
    ['羽毛', '足球', '篮球']
]

df1_1 = pd.DataFrame(data1, index=['x1', 'x2', 'x3', 'x4']) # 设置列索引
df1_2 = pd.DataFrame(data1, index=['id', 'name', 'grades', 'like'], columns=['x1', 'x2', 'x3'])

print(f"行索引为x1,x2,x3,x4:\n{df1_1}")
# 输出结果:
#行索引为x1,x2,x3,x4:
#          0         1       2
#x1       12        15      18
#x2  Laotian  Xiaoping  xiaomi
#x3       88        99      66
#x4     羽毛      足球      篮球

print(f"行索引为id,name,grades,like;列索引为x1,x2,x3:\n{df1_2}")
# 输出结果:
#行索引为id,name,grades,like;列索引为x1,x2,x3:
#             x1        x2      x3
#id           12        15      18
#name    Laotian  Xiaoping  xiaomi
#grades       88        99      66
#like        羽毛     足球    篮球

data为字典类型,numpy的array来设置列的数据格式,与dtype的碰撞

import pandas as pd
import numpy as np

# np.array([], dtype=数据类型)设置此列的数据类型
data2 = {
    'id': np.array([12, 15, 18], dtype=int), 
    'name': np.array(['Laotian', 'Xiaoping', 'xiaomi'], dtype=str),
    'grades': np.array([88, 99, 66], dtype=float),
    'like': np.array(['羽毛', '足球', '篮球'], dtype=str)
}

df2_1 = pd.DataFrame(data2, index=['x1', 'x2', 'x3'])
df2_2 = pd.DataFrame(data2, index=['x1', 'x2', 'x3'], dtype=float)
print(f"行索引为x1,x2,x3,数据类型同源数据:\n{df2_1}")
# 输出结果:
#行索引为x1,x2,x3,数据类型同源数据:
#    id      name  grades like
#x1  12   Laotian    88.0   羽毛
#x2  15  Xiaoping    99.0   足球
#x3  18    xiaomi    66.0   篮球

print(f"行索引为x1,x2,x3,数据类型 强转 为float:\n{df2_2}")
# 输出结果:
#行索引为x1,x2,x3,数据类型 强转 为float:
#      id      name  grades like
#x1  12.0   Laotian    88.0   羽毛
#x2  15.0  Xiaoping    99.0   足球
#x3  18.0    xiaomi    66.0   篮球
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值