pandas处理csv文件时,添加索引 2019-02-27

遇到如下“没有”索引的文件,处理及其不方便。

1.一般的csv文件及其索引

CSV文件.png
读取结果.png

2.csv文件未设置索引情况下读取到的索引

目标CSV文件.png

image.png

可以看到
pandas将第一行处理为了列索引,同时由于表格中的第一格(左上角)不为空,因此从左侧开始的第一列并不为行索引,重新为数据添加了新的行索引,从第二行开始,0为初始第一行。

3.如何添加列索引呢?

这里有两个语法是df.reindex()和df.rename()

  • df.reindex(['a','b','c','d'])//默认设置index
    df.reindex(columns=['one','two','three','four'])//指定设置columns
    df.reindex(index=['a','b','c','d'],columns=['one','two','three','four'])//同时设置
  • df.rename({‘name’:‘new_name’},axis='colunmns')//修改axis来指定行列
    df.rename(columns ={‘name’:‘new_name’},index ={‘name’:‘new_name’})//同时设置
    可选参数:inplace=True,如果为true,会直接更改原dataframe。

1.直接使用df.reindex(columns=['one','two','three','four'])

image.png

修改索引完成,但成功出现错误。

2.使用rename

image.png

语法:
df = df.rename({'a': 'new_a', 'b': 'new_b', 'c': 'new_c', 'd': 'new_d', 'e': 'new_e'},axis='columns')
修改成功,但是丢失了第一行的数据,且我们看到序号这一列其实是无用的,因此还需删除此列。

4.添加数据及排序

添加数据loc是比较方便的做法,但如果第n行有数据,那么new_data将会替换这个数据
new_data=['a','b','c','d']
df.loc[n] = new_data

另一种做法是用append,直接在数据末尾增加一行
data={'a':9,'b':10,'c':11,'d':12}
df.append(data,ignore_index=True)

看看处理结果


增加前.png

增加后.png

接下来是排序

data.sort_values(by='列名')

image.png

行索引出现了问题,这时候需要重新索引并删除原索引

  • df1 = data.sort_values(by='列名')
    df1.reset_index()
  • df2 = df1.reset_index()
    df df2['index']
image.png

image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容