美文网首页python收藏我爱编程
pandas操作excel常用命令

pandas操作excel常用命令

作者: 七彩色工作室 | 来源:发表于2017-07-20 14:29 被阅读0次

1、引入pandas

import pandas as pd 

读取excel

df=pd.read_excel('1.xlsx')

写出到excel(文件名相同将会覆盖)

df.to_excel('1.xlsx')

数据排序

newDF = df.sort(['曝光量', '带来的访客数'], ascending=[True, False]);  #多重排序

使用&(并)与| (或)实现多条件筛选

df[df['id']>100 & df['id']<200]
#in筛选方式
df[df['id'].isin([100,101,102])]

获取行数和列数

df.shape[0]
df.shape[1]

数据清洗

misc['product_desc'] = misc['product_desc'].str.replace('\n', '')
df["Make"] = df["Make"].map(str.strip)

按照某列删除重复项

df = df.drop_duplicates('b')

删除空行/列

import numpy as np
df['测试列']=np.nan #这里增加一列模拟数据
df.dropna(axis=1,how='all') 
#axis为0和1分别代表按行和列,how='all' 或者'any' 则表示是正行/列数据全部为Nan或者是只要任一出现Nan进行删除

重置索引列

ndf=df[df['标题']=='空间']
ndf.head()
#=================数据如下=================
        ID  标题                                                 正文  
8   500002  空间                               空间百分之八十满意吧,反正比老款的好多了 
18  500003  空间  车间方面表现也很不错,储物空间也足够用

假如我们像正常的操作df

for i in range(ndf.shape[0]):
     print(ndf.ix[i,0])

这里将会得到类似下面的报错:
File "pandas\index.pyx", line 137, in pandas.index.IndexEngine.get_loc (pandas\index.c:4154)
File "pandas\index.pyx", line 159, in pandas.index.IndexEngine.get_loc (pandas\index.c:4018)
File "pandas\hashtable.pyx", line 303, in pandas.hashtable.Int64HashTable.get_item (pandas\hashtable.c:6610)
File "pandas\hashtable.pyx", line 309, in pandas.hashtable.Int64HashTable.get_item (pandas\hashtable.c:6554)
解决的方法就是使用reset_index重置索引即可

ndf.reset_index(drop=True) #不加drop选项的话则新增一列索引

相关文章

网友评论

    本文标题:pandas操作excel常用命令

    本文链接:https://www.haomeiwen.com/subject/ajilkxtx.html