python—dataframe用法

#行处理
#df.iloc[1] 行索引号——获取行
#df.iloc[0,1] 行列索引号——获取一个元素
#df.iloc[[0,1]] 双括号默认都是行索引号——获取n行
#df.iloc[0:2,1:3] 行列索引号——获取区域元素
#df.loc["A"] 行名称——获取行
#df.loc["A","c1"] 行列名称——获取一个元素
#df.loc[["A","B"]] 双括号默认都是行名称号——获取n行
#df.loc["A":"B","c1":"c2"] 行列名称——获取区域元素
#列处理
#df["c2"] 列名称——获取列
#df[["c1","c2"] 列名称——获取n列

#修改某一值
#df.iloc[0,1] = 2
#df.loc["A","c1"] =2

#修改某一行信息 map与apply 当apply中axis=0时表示行
#df.loc["A"]=df.loc["A"].map(lambda x:x*2) -- A行信息数*2
#df.iloc[1]=df.iloc[1].map(lambda x:x*2) -- 索引号1,行信息数*2
#df.loc['A'] = df.apply(lambda x: x['B'] + 2 * x['C'], axis=0)

#修改某一列信息 map与apply 当apply中axis=1时表示列
#df["c1"]=df["c1"].map(lambda x:x*2) -- c1列信息数*2
#df['c3'] = df.apply(lambda x: x['c1'] + 2 * x['c2'], axis=1)

#map、apply,mapapply比较
#apply对DataFrame的数据进行按行或按列操作,axis=0时表示行,axis=1时表示列,可添加min与max
#apply运用到Series中,执行的是对每个元素的运算
#applymap自动对DataFrame每一个元素进行处理,不能添加统计函数比如min与max
#map 是对 行、列,series 等 进行每个元素的单独操作,不能添加统计函数比如min与max

#某列值为**显示此列
#df[df['c1']==9] -- 列c1值为9的行

import numpy as np
import pandas as pd
a=np.random.randint(5,10,size=(5,5))
df = pd.DataFrame(a,index=["A","B","C","D","E"],columns=['c1', 'c2', 'c3', 'c4', 'c5'])
#print(type(df))
print(df)
'''
#iloc 按照索引号切片取信息左闭右开
df1=df.iloc[0:2,1:3]
print(df1)
#loc 按照行列名称取信息
df2=df.loc["A":"B","c2":"c3"]
print(df2)

#列索引
print(df['c2'])

# 返回前n行
print(df.head(2))
# 返回后n行
print(df.tail(2))

# 按照行列名称取信息,n个注意用【 】扩起
df3 = df[["c2","c3"]]
print(df3)

#修改某一数据
df.iloc[1,2]="apple"
print(df)



#修改列数据 使用map方法,其中lambda函数中x代表当前的列
#df['c2'] = df['c2'].map(lambda x: x**2)
#print(df)
#修改行数据
df.iloc[1]=df.iloc[1].map(lambda x:x*2)

#修改多列数据 apply方法 c3=c1+2*c2
df['c3'] = df.apply(lambda x: x['c1'] + 2 * x['c2'], axis=1)

#排序
print(df['c2'].sort_values(ascending=False))

#apply使用统计函数
df1=df.apply(lambda x: x.max()-x.min())
#print(df)

#增加列数据
df["c6"]=[1,2,3,4,5]
print(df)

#某列数值等于**显示此列
print(df[df['c1']==9])
'''



原文地址:https://www.cnblogs.com/wenchengqingfeng/p/13297176.html