文章目录
1.将下面字典创建为DataFrame 2.提取含有字符串“python”的行 3.输出df所有列名 4.修改第列名 5.统计grame列中每种编程语言出现的次数 6 将空值用上下值的平均值填充 7 列值大于3的数 8 去重列 9 计算列平均值 10 将列转换列表 11 保存到excel 12 查询行列 13 列值大于3小月7的值 14 交换两列位置 15 列值最大所在行 16 查最后5行数据 17 删最后一行数据 18 增加最后一行数据 19 排序 20 统计列的长度 21 读取Excel文件,csv文件 22 查看df前5行 24 分组并计算平均值 26 createtime提取为月-日 27 查看数值型列的统计 28 根据id将数据分为三组 29 按降序排列 30 取第30行数据 31 取中位数 32 水平频率分布直方图 33 水平密度曲线 34 删列: 35 合并为新的一列 37.计算最大值与最小值之差 38.将第一行与最后一行拼接 39.将第8行数据添加至末尾 40.查看每列的数据类型
import pandas as pd
import numpy as np
1.将下面字典创建为DataFrame
data = { 'grame' : [ 'python' , 'java' , 'c' , np. nan, 'python' ] ,
'score' : [ '22' , '33' , '66' , '00' , '66' ] }
df = pd. DataFrame( data)
print ( df)
2.提取含有字符串“python”的行
print ( df[ df[ 'grame' ] == 'python' ] )
3.输出df所有列名
print ( df. columns)
4.修改第列名
colNameDict = {
'grame' : '内容' ,
'score' : '分数'
}
df. rename( columns= colNameDict, inplace= True )
print ( df)
5.统计grame列中每种编程语言出现的次数
df[ '内容' ] . value_counts( )
DataFramedata_dict= { "Grammer" : [ "Python" , "C" , "Java" , "GO" , np. nan, "SQL" , "PHP" , "python" ] ,
"Score" : [ 1 , 2 , np. nan, 4 , 5 , 6 , 7 , 10 ] }
df = pd. DataFrame( DataFramedata_dict)
6 将空值用上下值的平均值填充
df[ 'Score' ] = df[ 'Score' ] . fillna( df[ 'Score' ] . interpolate( ) )
7 列值大于3的数
print ( df[ df[ 'Score' ] > 3 ] )
8 去重列
df = df. drop_duplicates( [ 'Grammer' ] )
print ( df)
9 计算列平均值
print ( df[ 'Score' ] . mean( ) )
10 将列转换列表
print ( df[ 'Grammer' ] . to_list( ) )
11 保存到excel
print ( df. to_excel( r'test.xlsx' ) )
12 查询行列
print ( df. shape)
13 列值大于3小月7的值
print ( df[ ( df[ 'Score' ] > 3 ) & ( df[ 'Score' ] < 7 ) ] )
14 交换两列位置
df[ [ 'Grammer' , 'Score' ] ] = df[ [ 'Score' , 'Grammer' ] ]
print ( df)
col = df. columns[ [ 1 , 0 ] ]
print ( df[ col] )
15 列值最大所在行
print ( df[ df[ 'Score' ] == df[ 'Score' ] . max ( ) ] )
16 查最后5行数据
print ( df. tail( ) )
17 删最后一行数据
df. drop( len ( df) - 1 , inplace= True )
print ( df)
18 增加最后一行数据
DataFramedata_dict2 = { 'Grammer' : [ 'php' ] , 'Score' : [ 9 ] }
df2 = pd. DataFrame( DataFramedata_dict2)
pd. concat( [ df, df2] )
print ( df)
19 排序
df. sort_values( 'Score' , inplace= True )
print ( df)
20 统计列的长度
df[ 'Grammer' ] = df[ 'Grammer' ] . fillna( '' )
df[ 'len_G' ] = df[ 'Grammer' ] . map ( lambda x: len ( x) )
print ( df)
21 读取Excel文件,csv文件
dfe = pd. read_excel( r'C:\Users\Administrator\Desktop\目标.xlsx' ,
header = 0 , sheet_name= 1 )
df = pd. read_csv( r'..\..\lh_common_org_region.csv' , encoding= "GBK" )
22 查看df前5行
print ( df. head( ) )
24 分组并计算平均值
df. groupby( 'ORG_REGION_NAME' ) . mean( )
print ( df. groupby( 'ORG_REGION_NAME' ) [ 'id' ] . mean( ) )
26 createtime提取为月-日
df[ 'CREATE_DATE' ] . fillna( '01/01/2000 00:00:00' , inplace= True )
df[ 'time' ] = pd. to_datetime( df[ 'CREATE_DATE' ] , format = '%d/%m/%Y %H:%M:%S' )
df[ '月-日' ] = df[ 'time' ] . dt. month. astype( int ) . astype( str ) +
"月-" + df[ 'time' ] . dt. month. astype( int ) . astype( str )
print ( df)
27 查看数值型列的统计
print ( df. describe( ) )
28 根据id将数据分为三组
bins = [ 0 , 2000 , 5000 , 10000 ]
group_names = [ '低' , '中' , '高' ]
df[ 'categories' ] = pd. cut( df[ 'id' ] , bins, labels= group_names)
print ( df)
29 按降序排列
print ( df. sort_values( [ 'id' ] , ascending= False ) )
30 取第30行数据
print ( df. iloc[ 29 ] )
31 取中位数
print ( np. median( df[ 'id' ] ) )
32 水平频率分布直方图
import pandas as pd
df = pd. read_csv( r'..\..\lh_common_org_region.csv' , encoding= "GBK" )
import matplotlib as plt
df. ORG_ID. plot( kind= "hist" )
33 水平密度曲线
df. ORG_ID. plot( kind= "kde" )
34 删列:
del df[ 'id' ]
print ( df)
35 合并为新的一列
df[ 'test' ] = df[ 'ORG_REGION_NAME' ] + df[ 'ORG_ID' ] . astype( str )
print ( df)
37.计算最大值与最小值之差
m = df[ [ 'id' ] ] . apply ( lambda x: x. max ( ) - x. min ( ) )
print ( m)
38.将第一行与最后一行拼接
print ( pd. concat( [ df[ : 1 ] , df[ - 1 : ] ] ) )
39.将第8行数据添加至末尾
df. append( df. iloc[ 7 ] )
40.查看每列的数据类型
df. dtypes