panda

pandas是基于NumPy数组构建的,使数据预处理、清洗、分析工作变得更快更简单。pandas是专门为处理表格和混杂数据设计的,而NumPy更适合处理统一的数值数组数据。

pandas有两个主要数据结构:Series和DataFrame。

Series:Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成。仅由一组数据即可产生最简单的

DataFrame

列表转换为数据框

第一种:两个不同列表转换成为数据框

from pandas.core.frame import DataFrame
a=[1,2,3,4]#列表a
b=[5,6,7,8]#列表b
c={"小红" : a,
   "小蓝" : b}#将列表a,b转换成字典 ,key可以自定义命名
data=DataFrame(c)#将字典转换成为数据框,默认按列写入
print(data)

输出结果
  小红  小蓝
0  1  5
1  2  6
2  3  7
3  4  8

###名称修改
data.rename(columns={'小红':'a','小蓝':'b'},inplace=True)
###inplace 就原数据框修改
print(data)

   a  b
0  1  5
1  2  6
2  3  7
3  4  8


###数据框转置
data=data.T#  按行写入
print(data)
   0  1  2  3
a  1  2  3  4
b  5  6  7  8

第二种:将包含不同子列表的列表转换为数据框(默认按行写入)

data=[[1,2,'fff',4],[5,6,'b',8],[7,8,'fff',18],[3,7,'c','6'],[10,20,'d',99],[3,8,'fff',99]]

print(data)
     0   1    2   3
0   1   2  fff   4
1   5   6    b   8
2   7   8  fff  18
3   3   7    c   6
4  10  20    d  99
5   3   8  fff  99

数据框筛选

data=[[1,2,'fff',4],[5,6,'b',8],[7,8,'fff',18],[3,7,'c','6'],[10,20,'d',99],[3,8,'fff',99]]
df = DataFrame(data)
print(df)
    0   1    2   3
0   1   2  fff   4
1   5   6    b   8
2   7   8  fff  18
3   3   7    c   6
4  10  20    d  99
5   3   8  fff  99

df.rename(columns={0:'a',1:'b',2:'c',3:'d'},inplace=True)
print(df)
    a   b    c   d
0   1   2  fff   4
1   5   6    b   8
2   7   8  fff  18
3   3   7    c   6
4  10  20    d  99
5   3   8  fff  99
######################筛选列
df['c']  ###选取c列
0    fff
1      b
2    fff
3      c
4      d
5    fff

df['c'] =='fff' ##查看c列等于'fff'的行
0     True
1    False
2     True
3    False
4    False
5     True
df[df['c'] =='fff' ]   ##选取c列等于‘fff’的行
     a    b     c   d
0   1   2   fff 4
2   7   8   fff 18
5   3   8   fff 99


#################筛选行
第一种 : loc (按标签选取),标签可自定义设置

df.loc[2]  ###选取第二行,返回series
a      7
b      8
c    fff
d     18
Name: 2, dtype: object

df.loc[2:5,'a'] ###选取2-5行的第a列,左闭右闭,


第二种:iloc(根据行号,索引数)
df.iloc[3:5]   左闭右开

a   b   c   d
3   3   7   c   6
4   10  20  d   99 

排序

data=[[1,2,'fff',4],[5,6,'b',8],[7,8,'fff',18],[3,7,'c','6'],[10,20,'d',99],[3,8,'fff',99]]
df=DataFrame(data)
df.rename(columns={0:'a',1:'b',2:'c',3:'d'},inplace=True)

   a   b    c   d
0   1   2  fff   4
1   5   6    b   8
2   7   8  fff  18
3   3   7    c   6
4  10  20    d  99
5   3   8  fff  99

aa =df.sort_values(by="a" , ascending=True)
##以a列进行排序,默认上序
    a   b    c   d
0   1   2  fff   4
3   3   7    c   6
5   3   8  fff  99
1   5   6    b   8
2   7   8  fff  18
4  10  20    d  99

df["c"] = df["c"].astype("float") ###将c列转化为float型

dataframe拼接合并

第一种:result = df1.append(df2,ignore_index=True)
第二种 :https://www.cnblogs.com/guxh/p/9451532.html
pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, copy=True)

默认值:axis=0

axis=0:竖方向(index)合并,合并方向index作列表相加,非合并方向columns取并集

axis=1:横方向(columns)合并,合并方向columns作列表相加,非合并方向index取并集

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。