数据分析Day4:pandas笔记

DataFrame包含索引和数据

  1. 基本操作

df.dtypes 显示每列的数据类型

df.head()

df.tail(3)

df.index

df.columns
df.columns=['name','url','band'] 重命名列名

df.values

df.describe()

df.T 对数据进行转置

df.sort(columns='likes')

2、选取数据

df['A'] A是列名

df[1:5] 索引1~4行的数据

df.loc[0:3,['nickname','likes']] 按索引,取nickname,likes数据
(包括索引3的数据,共4条)

df.loc[:,['articles','likes','nickname']] 取指定3列的全部数据

df.at[0,'url'] 取第一行数据的url值

df[df.articles>50] 选择articles大于50的记录

3、数据去重
newdf = df.drop_duplicates() 返回一个新的dataframe

data.drop_duplicates(['k2']) 按列去重

4、缺失数据处理
1)数据补齐,用一定的值去填充
newdf = df.dropna()
2)删除对应缺失行
3)不处理

5、空格值处理
strip() 清理值前后的空格
newname = df['name'].str.strip()

6、字段抽取
slice(start,stop)

df['tel']=df['tel'].astype(str)
bands = df['tel'].str.slice(0,3)

7、字段拆分
split(sep,n,expand=False)
sep 用于分割的字符串
n 分割为多少列
expand True, 返回DataFrame; False, 返回Series

newdf = df['name'].str.split(' ',1,True)

8、字段合并
DataFrame不同列合并操作,列先需要转为字符型
x = x1+x2+...

9、数据抽取 (数据过滤)
1)比较运算
df[df.comment>200]
2)范围运算
df[df.articles.between(50,100)]
3)空值匹配
df[pandas.isnull(df.title)]
4)字符匹配
df[df.title.str.contains('Apple',na=False)]
na=False表示空值不匹配
5)逻辑运算
与(&), 或(|), 取反(not)
df[(df.comments>=500) & (df.comments<=1000)]

10、随机抽样
numpy.random.randint(start,end,number)
start 范围的开始值
end 范围的结束值
number 抽样个数

11、记录合并
将两个DataFrame合并
df = pandas.contact([df1,df2,df3])

12、字段匹配
相当SQL多表联合查询(内连接)

    newdf = pandas.merge(
       item,
       price,
       left_on='id',
       right_on='id'
    )
  两个dataframe, item和price ,由id进行连接

13、计算列
对列进行简单计算

    result = df.price* df.num
    df['sum']=result

14、日期转换

    from pandas import to_datetime
    df_dt=to_datetime(df.regtime, format='%Y-%m-%d')

15、日期格式化
将日期型的数据,按照给定的格式,转为字符型的数据
apply(lambda x: 处理逻辑)
datetime.strftime(x,format)

    df_dt_str=df_dt.apply(lambda x: datetime.strftime(x,'%Y-%m-%d'))

你可能感兴趣的:(数据分析Day4:pandas笔记)