首页 > 其他分享 >Pandas中DataFrame表格型数据结构

Pandas中DataFrame表格型数据结构

时间:2024-09-19 20:22:17浏览次数:3  
标签:01 df DataFrame 数据结构 pd print 2016 Pandas

目录

  • 1、DataFrame是什么
  • 2、创建一个dataframe
  • 3、获取dataframe的行、列索引
  • 4、获取dataframe的值

1、DataFrame是什么

series是有一组数据与一组索引(行索引)组成的数据结构,而dataframe是由一组数据与一对索引(行索引和列索引)组成的表格型数据结构。之所以叫表格型数据结构,是因为dataframe的数据形式和Excel的数据存储形式很相近。

2、创建一个dataframe

创建一个dataframe使用的方法是pd.dataframe(),通过给dataframe()方法传入不同的对象即可实现。

import pandas as pd
df1 = pd.DataFrame(["a","b","c","d"])
df2 = pd.DataFrame([["a","A"],["b","B"],["c","C"],["d","D"]])
df31 = pd.DataFrame([["a","A"],["b","B"],["c","C"],["d","D"]],columns = ["小写","大写"])
df32 = pd.DataFrame([["a","A"],["b","B"],["c","C"],["d","D"]],index = ["一","二","三","四"])
df33 = pd.DataFrame([["a","A"],["b","B"],["c","C"],["d","D"]],columns = ["小写","大写"],index = ["一","二","三","四"])

print(df1)
print(df2)
print(df31)
print(df32)
print(df33)

   0
0  a
1  b
2  c
3  d
   0  1
0  a  A
1  b  B
2  c  C
3  d  D
  小写 大写
0  a  A
1  b  B
2  c  C
3  d  D
   0  1
一  a  A
二  b  B
三  c  C
四  d  D
  小写 大写
一  a  A
二  b  B
三  c  C
四  d  D

总结:
1.只传入一个单一列表时,该列表的值会显示成一列,且行和列都是从0列开始的默认索引。
2.当传入一个嵌套列表时,会根据嵌套列表数显示成多列数据,行、列索引同样是从0开始的默认索引。列表里面嵌套的列表也可以换成元组。也可以手动设置行列索引

import pandas as pd

df41 = pd.DataFrame({"小写":["a","b","c","d"],"大写":["A","B","C","D"]})
df42 = pd.DataFrame({"小写":["a","b","c","d"],"大写":["A","B","C","D"]},index = ["一","二","三","四"])

print(df41)
print(df42)

  小写 大写
0  a  A
1  b  B
2  c  C
3  d  D
  小写 大写
一  a  A
二  b  B
三  c  C
四  d  D

总结:直接以字典的形式传入dataframe时,字典的key值就相当于列索引,如果没有设置行索引,行索引还是使用从0开始的默认索引,同样可以使用index参数自定义行索引。

3、获取dataframe的行、列索引

import pandas as pd

df41 = pd.DataFrame({"小写":["a","b","c","d"],"大写":["A","B","C","D"]})
df42 = pd.DataFrame({"小写":["a","b","c","d"],"大写":["A","B","C","D"]},index = ["一","二","三","四"])


print(df41.columns)
print(df42.columns)

print(df41.index)
print(df42.index)

Index(['小写', '大写'], dtype='object')
Index(['小写', '大写'], dtype='object')
RangeIndex(start=0, stop=4, step=1)
Index(['一', '二', '三', '四'], dtype='object')

4、获取dataframe的值

通过列表的形式获取某一行或某一列或某几行或某几类。

import pandas as pd
import numpy as np
date =pd.date_range('20160101',periods=6)
# print(date)

df = pd.DataFrame(np.arange(24).reshape((6,4)),index=date,columns=['A','B','C','D'])
print(df['A'],df.A)

print(df[0:3])
print(df['2016-01-01':'2016-01-03'])

2016-01-01     0
2016-01-02     4
2016-01-03     8
2016-01-04    12
2016-01-05    16
2016-01-06    20
Freq: D, Name: A, dtype: int32 2016-01-01     0
2016-01-02     4
2016-01-03     8
2016-01-04    12
2016-01-05    16
2016-01-06    20
Freq: D, Name: A, dtype: int32
            A  B   C   D
2016-01-01  0  1   2   3
2016-01-02  4  5   6   7
2016-01-03  8  9  10  11
            A  B   C   D
2016-01-01  0  1   2   3
2016-01-02  4  5   6   7
2016-01-03  8  9  10  11

通过select by label: loc

import pandas as pd
import numpy as np

date =pd.date_range('20160101',periods=6)
df = pd.DataFrame(np.arange(24).reshape((6,4)),index=date,columns=['A','B','C','D'])

print(df.loc['2016-01-02'])
print(df.loc[:,['A','B']])
print(df.loc['2016-01-02',['A','B']])

A    4
B    5
C    6
D    7
Name: 2016-01-02 00:00:00, dtype: int32
             A   B
2016-01-01   0   1
2016-01-02   4   5
2016-01-03   8   9
2016-01-04  12  13
2016-01-05  16  17
2016-01-06  20  21
A    4
B    5
Name: 2016-01-02 00:00:00, dtype: int32

通过select by position: iloc

import pandas as pd
import numpy as np

date =pd.date_range('20160101',periods=6)
df = pd.DataFrame(np.arange(24).reshape((6,4)),index=date,columns=['A','B','C','D'])

print(df.iloc[3:5,1:3])
print(df.iloc[[1,3,5],1:3])

             B   C
2016-01-04  13  14
2016-01-05  17  18
             B   C
2016-01-02   5   6
2016-01-04  13  14
2016-01-06  21  22

通过boolean indexing

import pandas as pd
import numpy as np

date =pd.date_range('20160101',periods=6)
df = pd.DataFrame(np.arange(24).reshape((6,4)),index=date,columns=['A','B','C','D'])

df.iloc[2,2] =111
df.loc['2016-01-01','B'] =222
df.C[df.C>10] =0
df.B[df.A>16] =0
#df[df.D>6] =0

df['E'] =pd.Series([1,2,3,4,5,6],index=pd.date_range('2016-01-01',periods=6))
df['F']=np.nan

print(df)

标签:01,df,DataFrame,数据结构,pd,print,2016,Pandas
From: https://blog.csdn.net/weixin_43597208/article/details/142335422

相关文章

  • 栈与队列:数据结构中的“双子星”【详解】
    栈和队列(Stack&Queue)栈(Stack)栈的定义及结构1.什么是栈?栈是一种线性数据结构,具有后进先出的特性LIFO(LastInFirstOut),指其只允许在固定的一端进行插入和删除元素的操作。进行数据插入和删除的一端称为“栈顶”,另一端称为“栈底”。栈内无元素时称为空栈,元素的插入......
  • [1064] Change values in a DataFrame based on different values
    TochangevaluesinaDataFramebasedondifferentvalues,youcanuseseveralmethodsinPandas.Hereareafewcommonapproaches:UsinglocforConditionalReplacementYoucanusethelocmethodtoreplacevaluesbasedonacondition:importpandasasp......
  • Redis数据结构跳跃列表(skipList)与压缩列表(ziplist)
    skiplist介绍跳表是一种数据结构,它使得包含了n个元素的有序序列的查找和插入的平均时间复杂度都是O(logn),优于数组的O(n)复杂度,快速的查找是通过维护多层次的链表实现的,且与前一层(下面一层)链表的数量相比,每一层的链表元素数量更少简单来讲跳表就是基于链表实现的有序列表,通过维......
  • Redis基础数据结构之 quicklist 和 listpack 源码解读
    目录标题quicklist为什么要设计quicklist?quicklist特点ziplistquicklist数据结构listpacklistpack是什么?listpack数据结构ziplist干啥去了?为什么有listpack?什么是ziplist的连锁更新?listpack如何避免连锁更新?listpack替代了quicklist吗?quicklist为什么要设计qu......
  • Java-数据结构-优先级队列(堆)-(一) (;´д`)ゞ
    文本目录:❄️一、优先级队列:     ➷1、概念:❄️二、优先级队列的模拟实现:     ➷1、堆的概念:     ➷ 2、堆的性质:      ➷ 3、堆的创建: ▶向下调整:       ➷ 4、堆的插入和删除:    ▶堆的插入: ☞......
  • Pandas的读写数据
    目录读写文件的类型Excel写API准备数据1.直接写入(默认有索引和标题)2.写入(去掉索引)3.写入(去掉索引和标题)4.写入(去掉索引和标题,指定表单信息) Excel读API1.读(默认带有索引和标题)2.读(指定索引项)3.读(碰到无标题列和无索引列,指定索引列,标题列)4.读(只......
  • 【数据结构】二叉树的遍历
    堆的应用堆排列堆排序即利用堆的思想来进行排序,总共分为两个步骤:建堆升序:建大堆降序:建小堆利用堆删除思想来进行排序建堆和堆删除中都用到了向下调整,因此掌握了向下调整,就可以完成堆排序。voidHeapSort(int*a,intn){ //a数组直接建堆O(N) for(inti=......
  • Python 中常见的数据结构(一)
    Python中常见的数据结构(一)Python是一种功能强大且灵活的编程语言,它提供了多种内置的数据结构,可以帮助我们更好地组织和处理数据。在这个文章中,我们将探讨Python中最常见的一些数据结构,并结合实例来演示它们的使用。1.字典(Dictionary)字典是一种键值对的数据结构,它允许我们根据......
  • Python 中常见的数据结构(二)
    Python中常见的数据结构(二)6.栈(Stack)栈是一种后进先出数据结构,Python中,可以使用list类型创建一个栈,例如:stack=[]stack.append('apple')stack.append('banana')print(stack.pop())#Output:banana在上面的示例中,我们创建了一个名为stack的栈,然后使用append方法添加......
  • Pandas中df.drop_duplicates()的用法
    df.drop_duplicates()是Pandas中用于删除重复行的函数。它可以根据特定列或整个数据框中出现的重复值,保留第一项或最后一项,并删除其余的重复项。这个函数很适合用于数据清洗,特别是处理重复数据时。基本语法:DataFrame.drop_duplicates(subset=None,keep='first',inpla......