Python_Pandas基础

本文介绍了Pandas在Python中的基础用法,包括安装、引入、数据结构如Series和DataFrame的选择与设置,处理丢失数据的方法,数据导入导出,以及合并数据的各种方式,如axis、join和merge等。
摘要由CSDN通过智能技术生成

Python_Pandas基础

By:小?

参考博客_1
参考博客_2
参考博客_3

  • Pandas是Python的一个数据分析包,该工具为解决数据分析任务而创建。
  • Pandas纳入大量库和标准数据模型,提供高效的操作数据集所需的工具。
  • Pandas提供大量能使我们快速便捷地处理数据的函数和方法。
  • Pandas是字典形式,基于NumPy创建,让NumPy为中心的应用变得更加简单

Pandas安装

pip3 install pandas

Pandas引入

import pandas as pd #为了方便实用pandas 采用pd简写


数据结构

  • series
  • DataFrame

Series

import numpy as np
import pandas as pd
s=pd.Series([1,2,3,np.nan,5,6])
print(s)#索引在左边 值在右边
0    1.0
1    2.0
2    3.0
3    NaN
4    5.0
5    6.0
dtype: float64

DataFrame

dates=pd.date_range('20180310',periods=6)
df = pd.DataFrame(np.random.randn(6,4), index=dates, columns=['A','B','C','D'])#生成6行4列位置
print(df)#输出6行4列的表格
print(df['B'])
print("----------------\n----------------")

#创建特定数据的DataFrame
df_1=pd.DataFrame({
   'A' : 1.,
                    'B' : pd.Timestamp('20180310'),
                    'C' : pd.Series(1,index=list(range(4)),dtype='float32'),
                    'D' : np.array([3] * 4,dtype='int32'),
                    'E' : pd.Categorical(["test","train","test","train"]),
                    'F' : 'foo'
                    })
print(df_1)
print(df_1.dtypes)
print(df_1.index)#行的序号
#Int64Index([0, 1, 2, 3], dtype='int64')
print(df_1.columns)#列的序号名字
print("----------------\n----------------")

#Index(['A', 'B', 'C', 'D', 'E', 'F'], dtype='object')
print(df_1.values)#把每个值进行打印出来
print(df_1.describe())#数字总结
print(df_1.T)#翻转数据
print("----------------\n----------------")

print(df_1.sort_index(axis=1, ascending=False))#axis等于1按列进行排序 如ABCDEFG 然后ascending倒叙进行显示
print(df_1.sort_values(by='E'))#按值进行排序
                   A         B         C         D
2018-03-10  0.872767  2.188739  0.766781 -0.001429
2018-03-11  0.218740 -0.556263 -0.047700  0.470347
2018-03-12 -0.816785  0.479690  1.722349  1.116260
2018-03-13  0.988138 -0.025760 -0.971384 -0.558211
2018-03-14 -0.581776  1.021027 -1.280569  1.022587
2018-03-15  0.061455 -1.647589 -1.568288 -0.467407
2018-03-10    2.188739
2018-03-11   -0.556263
2018-03-12    0.479690
2018-03-13   -0.025760
2018-03-14    1.021027
2018-03-15   -1.647589
Freq: D, Name: B, dtype: float64
----------------
----------------
     A          B    C  D      E    F
0  1.0 2018-03-10  1.0  3   test  foo
1  1.0 2018-03-10  1.0  3  train  foo
2  1.0 2018-03-10  1.0  3   test  foo
3  1.0 2018-03-10  1.0  3  train  foo
A           float64
B    datetime64[ns]
C           float32
D             int32
E          category
F            object
dtype: object
Int64Index([0, 1, 2, 3], dtype='int64')
Index(['A', 'B', 'C', 'D', 'E', 'F'], dtype='object')
----------------
----------------
[[1.0 Timestamp('2018-03-10 00:00:00') 1.0 3 'test' 'foo']
 [1.0 Timestamp('2018-03-10 00:00:00') 1.0 3 'train' 'foo']
 [1.0 Timestamp('2018-03-10 00:00:00') 1.0 3 'test' 'foo']
 [1.0 Timestamp('2018-03-10 00:00:00') 1.0 3 'train' 'foo']]
         A    C    D
count  4.0  4.0  4.0
mean   1.0  1.0  3.0
std    0.0  0.0  0.0
min    1.0  1.0  3.0
25%    1.0  1.0  3.0
50%    1.0  1.0  3.0
75%    1.0  1.0  3.0
max    1.0  1.0  3.0
                     0                    1                    2  \
A                    1                    1                    1   
B  2018-03-10 00:00:00  2018-03-10 00:00:00  2018-03-10 00:00:00   
C                    1                    1                    1   
D                    3                    3                    3   
E                 test                train                 test   
F                  foo                  foo                  foo   

                     3  
A                    1  
B  2018-03-10 00:00:00  
C                    1  
D                    3  
E                train  
F                  foo  
----------------
----------------
     F      E  D    C          B    A
0  foo   test  3  1.0 2018-03-10  1.0
1  foo  train  3  1.0 2018-03-10  1.0
2  foo   test  3  1.0 2018-03-10  1.0
3  foo  train  3  1.0 2018-03-10  1.0
     A          B    C  D      E    F
0  1.0 2018-03-10  1.0  3   test  foo
2  1.0 2018-03-10  1.0  3   test  foo
1  1.0 2018-03-10  1.0  3  train  foo
3  1.0 2018-03-10  1.0  3  train  foo


Pandas选择数据

  • 选择特定列的数据
  • 选择特定行的数据
  • 选择特定行and列的数据
  • 根据序列iloc-行号进行选择数据
  • 根据条件判断筛选
  • 多重索引
df = pd.DataFrame(np.random.rand(16).reshape(4,4)*100,
                   index = ['one','two','three','four'],
                   columns = ['a','b','c','d'])
df
a b c d
one 73.506341 75.662735 74.675325 7.697207
two 73.055825 83.222481 4.777599 82.534340
three 89.156683 85.001712 47.443443 73.379189
four 95.648043 64.162408 26.731916 73.839172

选择特定列的数据

#单列
print(df["a"])
print("----------------\n----------------")
#多列
print(df[["a","b"]])
print("----------------\n----------------")
#列_切片
print(df.loc[:,"b":"d"])
one      73.506341
two      73.055825
three    89.156683
four     95.648043
Name: a, dtype: float64
----------------
----------------
               a          b
one    73.506341  75.662735
two    73.055825  83.222481
three  89.156683  85.001712
four   95.648043  64.162408
----------------
----------------
               b          c          d
one    75.662735  74.675325   7.697207
two    83.222481   4.777599  82.534340
three  85.001712  47.443443  73.379189
four   64.162408  26.731916  73.839172

选择特定行的数据

#单行
print(df.loc["one"]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值