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

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

作者: PracticeAgain | 来源:发表于2019-02-28 17:14 被阅读0次

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

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

相关文章

网友评论

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

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