python数据框dataframe功能总结

1.数据框增加一列,df['new'] = test[0]表示给df新增一列,列名为new,整列值为test[0];

import pandas as pd

a = {'ip':[1,2,3,4],'name':[0,9,8,77],'time':['qq','ww','ee','rr']}
df = pd.DataFrame(a)
test = ['qqq','eeee']
df['new'] = test[0]
print(df)

2.数据框列内容筛选,

df1 = df[df['name'].isin([9,8])]表示筛选name列为9和8的数据框;

df2 = df[~df['name'].isin([9,8])]表示筛选name列不是9和8的数据框,~表示反;

df3 = df[(df['name'] > 9) | (df['name'] < 8)]表示筛选name列大于9或小于8的数据框,|表示或;
df4 = df[(df['ip'] > 2) & (df['ip'] <= 4)]表示筛选ip列大于2且小于等于4的数据框,&表示且。

import pandas as pd

a = {'ip':[1,2,3,4],'name':[0,9,8,77],'time':['qq','ww','ee','rr']}
df = pd.DataFrame(a)
df1 = df[df['name'].isin([9,8])]
df2 = df[~df['name'].isin([9,8])]
df3 = df[(df['name'] > 9) | (df['name'] < 8)]
df4 = df[(df['ip'] > 2) & (df['ip'] <= 4)]
print(df1)
print(df2)
print(df3)
print(df4)

3.数据框,获取行数、列数及第几行第几列的值

import pandas as pd

a = {'ip':[1,2,3,4],'name':[0,9,8,77],'time':['qq','ww','ee','rr']}
df = pd.DataFrame(a)
print(df)
colum_size = df.columns.size#列数 2
row_size =  df.iloc[:,0].size#行数 3
num1 = df.iloc[[0]].values[0][0]#第一行第一列的值 1
num2 = df.iloc[[1]].values[0][1]#第二行第二列的值 9
print(colum_size)
print(row_size)
print(num1)
print(num2)

4.数据框固定列顺序

import pandas as pd

a = {'ip':[1,2,3,4],'name':[0,8,8,77],'time':['qq','ww','ee','rr']}
df = pd.DataFrame(a)
b = ['name','ip','time']
df1 = df.loc[:,b]
print(df1)

 

5.设置表格的列宽

worksheet.set_column("A:A", 15) #设置单一列宽度
举例:
worksheet.set_column("A:B", 15)#设置区域列宽度
worksheet.set_column("0:1", 15) #依据索引更新列宽度
6.设置表格的行高

worksheet.set_row(1, 30) #设置单一行高度

7.python 去掉字符串中的数字

#!/usr/bin/env python
# -*- coding:utf-8 -*-
from string import digits
 
 
aa = "12433432dfsff45dsfdcce测试"
res = aa.translate(str.maketrans('', '', digits))
print(res)

8.重命名列名,将‘设备IP’替换成‘IP’

#替换名称,inplace = True它的作用是:是否在原对象基础上进行修改​
df.rename(columns={'设备IP':'IP'},inplace=True)

9.获取有空值的行数据

df.isnull().any()

 

10.获取有空值的列数据,T表示行列转置

df[df.isnull().T.any()]

11.去掉空值

#删除行参数axis = 0,删除列的参数axis = 1,存在nan则删除行或列how='any',所有值为nan则删除行或列how='all'
df.dropna(axis=1,how='any')

12.去掉指定列空值

#subset: 对特定的列进行缺失值删除处理
#方法一:
df.dropna(subset=['设备名称'])
#方法二:
df[~(df['设备名称'].isnull())]

13.查看重复值

df2 = df[df.duplicated()==True]
print(df2)

14.

df.drop_duplicates(subset=['IP'],keep='first',inplace=True)

去掉重复值

15.loc和iloc的区别

loc:用于通过行/列标签索引数据,iloc:用于通过行/列号索引数据

import pandas as pd

test_df=pd.DataFrame({'name':['张三','李四','王五','张三','李四','王五','张三'],
                     'level':[10,3,8,14,2,3,18],
                      'info':['吵闹','安静','中等','吵闹','安静','安静','吵闹'],
                      'change_times':[1,2,3,1,2,4,9]
                     })

print(test_df.loc[2])
print(test_df.iloc[2])

16.按列统计数量

统计满足条件的行数,size()

import pandas as pd
a = pd.DataFrame({'ip':[3,1,5,2,8],'name':['a','b','a','d','e']})
print(a)
name_df1 = a.groupby(['ip','name']).size().reset_index() #以ip,name分组,统计数量
name_df2 = a.groupby(['name']).size().reset_index()  #以name分组,统计数量
print(name_df1)
print(name_df2)
name_df2.rename(columns = {0:'数量'},inplace=True) #重置统计列的列名
print(name_df2)

17.排序

对单列数据进行排序

import pandas as pd
a = pd.DataFrame({'ip':[3,1,5,2,8],'name':['a','b','a','d','e']})
print(a)
a.sort_values(by=['ip'],axis=0,ascending=True,inplace=True) #ascending,ture升序,false降序
a.reset_index(drop=True,inplace=True)
print(a)

18.unique()函数与nunique()函数区别

unique()是以 数组形式(numpy.ndarray)返回列的所有唯一值,nunique()返回的是唯一值的个数

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值