DataFrame的创建方式

本文详细介绍了如何创建Pandas DataFrame,包括利用字典、列表互相嵌套生成,自定义列、数据、索引创建,以及利用二维数组创建。此外,还探讨了从CSV、Excel和SQL读取数据转化为DataFrame的方法,如pd.read_csv(), pd.read_excel()和pd.read_sql()。" 135517195,275413,无心剑藏头诗:杜牧泊诗解析,"['古代文学', '诗词鉴赏', '历史人物', '文化传承', '诗歌创作']
摘要由CSDN通过智能技术生成

一、定义:

         "二维数组"Dataframe:是一个表格型的数据结构,包含一组有序的列,其列的值类型可以是数值、字符串、布尔值等。Dataframe中的数据以一个或多个二维块存放,不是列表、字典或一维数组结构。

# Dataframe 数据结构
# Dataframe是一个表格型的数据结构,“带有标签的二维数组”。
# Dataframe带有index(行标签)和columns(列标签)

data = {'name':['Jack','Tom','Mary'],
        'age':[18,19,20],
       'gender':['m','m','w']}
frame = pd.DataFrame(data)
print(frame)  
print(type(frame))
print(frame.index,'\n该数据类型为:',type(frame.index))
print(frame.columns,'\n该数据类型为:',type(frame.columns))
print(frame.values,'\n该数据类型为:',type(frame.values))
# 查看数据,数据类型为dataframe
# .index查看行标签
# .columns查看列标签
# .values查看值,数据类型为ndarray
   age gender  name
0   18      m  Jack
1   19      m   Tom
2   20      w  Mary
<class 'pandas.core.frame.DataFrame'>
RangeIndex(start=0, stop=3, step=1) 
该数据类型为: <class 'pandas.indexes.range.RangeIndex'>
Index(['age', 'gender', 'name'], dtype='object') 
该数据类型为: <class 'pandas.indexes.base.Index'>
[[18 'm' 'Jack']
 [19 'm' 'Tom']
 [20 'w' 'Mary']] 
该数据类型为: <class 'numpy.ndarray'>

二、创建方式

1.利用字典、列表互相嵌套生成

(1)通过列表组成的字典创建DataFrame

        通过字典创建就轻松很多,字典的数据可以来自爬虫,将爬取的各种数据保存成DataFrame的格式,便于日后的数据分析。假设我们有一组persons数据为字典格式:

import pandas as pd
import numpy as np

persons = {'name': ['小花', '狗蛋', '二狗', '小草'],
           'age': [17, 20, 30, 20], 
           'gender': ['女', '男', '男', '女']}
df = pd.DataFrame(persons)
print(df)


"""
结果

  name  age gender
0   小花   17      女
1   狗蛋   20      男
2   二狗   30      男
3   小草   20      女

所有的列必须对齐,即每列都有四个数据。
"""

(2)通过列表组成的列表创建DataFrame

import pandas as pd
data = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
df = pd.DataFrame(data)
print(df)

"""
结果

   0   1   2   3
0  1   2   3   4
1  5   6   7   8
2  9  10  11  12
"""



import pandas as pd

data = [[1, 2, 3, 4], [5, 6, 7, 8, 89], [9, 10, 11, 12]]
df = pd.DataFrame(data)
print(df)

"""
结果
   0   1   2   3     4
0  1   2   3   4   NaN
1  5   6   7   8  89.0
2  9  10  11  12   NaN


第一维(0轴)代表行,第二维(1轴)代表列,某一行的数据没有对齐多出来,
其他行的自动补齐,值为NaN
"""

         可以设置索引值,通过index和columns属性:

import pandas as pd

list1 = [[5, 2, 0, 4], [2, 3, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值