Python:pandas

pandas下载:pip install pandas

一、series

Series是一种类似于一维数组的对象,由数据(各种NumPy数据 类型)以及与之相关的数据标签(即索引)组成

import pandas as pd  # 导包

data = [1, 2, 3]  # 数组数据
series1 = pd.Series(data=data)
print(series1, type(series1))  # 结果是由数据和索引组成
print(series1[0])  # 索引取值
'''
0    1
1    2
2    3
dtype: int64 <class 'pandas.core.series.Series'>
1
'''
# 可以通过字典构建Series对象,Series对象的索引从1开始
data1 = {1: "python", 2: "java", 3: "hadoop"}
series2 = pd.Series(data=data1)
print(series2)

# 创建Series给定下标表示只根据固定Key进行取值
series3 = pd.Series(data=data1, index=[1, 3])  # index可以指定取固定索引
print(series3)
'''
1    python
2      java
3    hadoop
dtype: object

1    python
3    hadoop
dtype: object
'''
# 输出数据的最大最小值,str类型也能输出
print(series3.min())
print(series3.max())

二、Dataframe表格型数据

DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)

DataFrame既有行索引也有列索引,可以看做由Series组成的字典

1、创建

import pandas as pd  # 导包

#  Dataframe表格型数据
# 通过字典进行创建
data2 = {"Language": ["Python", "java", "scala", "sql"],
         "application": ["pySpark", "Hadoop", "Spark", "Hive"]
         }
df1 = pd.DataFrame(data=data2)
print(df1)

# 通过列表进行创建 可以增加列名称
data3 = [["java", "1"], ["Python", "2"], ["scala", "3"]]
df2 = pd.DataFrame(data=data3, columns=["language", "year"])  # columns指定列名称
print(df2, type(df2))

# 创建一列数据
data4 = [[1], [2], [3]]
df3 = pd.DataFrame(data=data4,columns=["数字"])
print(df3, type(df3))
'''
  Language application
0   Python     pySpark
1     java      Hadoop
2    scala       Spark
3      sql        Hive
  language year
0     java    1
1   Python    2
2    scala    3 <class 'pandas.core.frame.DataFrame'>
   数字
0   1
1   2
2   3 <class 'pandas.core.frame.DataFrame'>
'''

2、删除

# axis表示列,默认为0,是行
df4 = df2.drop(labels=["year"], axis=1)
print(df4)  # df2本身值没有改动


# inplace 表示结果返回给当前的df2,默认false
df2.drop(labels=["year"], axis=1, inplace=True)
print(df2)
'''
 language
0     java
1   Python
2    scala
  language
0     java
1   Python
2    scala
'''

3、取数据

# 取数据
# 通过列进行取值,取出以后依旧是一个 Series
print(df1["application"], type(df1["application"]))

# 通过.+列名获取一列数据
print(df1.Language, type(df1.Language))

# 如何获取一行数据
print(df1.loc[0])  # 取固定下标的数据
print(df1.head())  # 默认从前取5行数据
print(df1.tail())  # 默认从后取5行数据

4、过滤数据

# 过滤数据
data5 = {"name": ["张老师", "王同学", "李同学"], "age": [24, 18, 19]}
df5 = pd.DataFrame(data=data5)
print(df5)

# 获取年龄小于20的数据
print(df5[df5["age"] < 20])
# 获取汇总
print(df5.describe())

'''
name  age
0  张老师   24
1  王同学   18
2  李同学   19
  name  age
1  王同学   18
2  李同学   19
             age
count   3.000000
mean   20.333333
std     3.214550
min    18.000000
25%    18.500000
50%    19.000000
75%    21.500000
max    24.000000

'''

5、读取文件

# 通过pandas读取文件
df6 = pd.read_csv("D:\pythonproject\demo01\data\students.txt", names=["id", "name", "age", "gender", "clazz"])
print(df6)
print(df6.head(100))  # 默认从前取5行数据
print(df6.tail())  # 默认从后取5行数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值