首页 > 其他 > 详细

Pandas文件读取

时间:2020-05-07 22:24:29      阅读:67      评论:0      收藏:0      [点我收藏+]

数据交换主要有以下几种类型:

  • 读取文本文件或磁盘上的其它高效文件格式
  • 与数据库交互
  • 与网络资源,比如Web API进行交互

在Pandas的使用场景中,最多的是将表格型的数据读取为DataFrame对象。实现这一功能的函数有很多,最常用的是read_csvread_table

1.

import pandas as pd

‘‘‘
a,b,c,d,message
1,2,3,4,hello
5,6,7,8,world
9,10,11,12,foo
‘‘‘
df = pd.read_csv(E:/test_resourse/ex1.csv)
print(df)#默认第一行为列索引,自动生成了行索引
print(**20)
df2 = pd.read_table(E:/test_resourse/ex1.csv,sep=,) #指定分隔符为逗号:
print(df2)
print(**20)
df = pd.read_csv(E:/test_resourse/ex1.csv,header=None) #使用默认列名
print(df)
print(**20)
df = pd.read_csv(E:/test_resourse/ex1.csv, names=[a,b,c,d,message]) # 自定义
print(df)

运行结果:

   a   b   c   d message
0  1   2   3   4   hello
1  5   6   7   8   world
2  9  10  11  12     foo
********************
   a   b   c   d message
0  1   2   3   4   hello
1  5   6   7   8   world
2  9  10  11  12     foo
********************
   0   1   2   3        4
0  a   b   c   d  message
1  1   2   3   4    hello
2  5   6   7   8    world
3  9  10  11  12      foo
********************
   a   b   c   d  message
0  a   b   c   d  message
1  1   2   3   4    hello
2  5   6   7   8    world
3  9  10  11  12      foo

 

2.如果你想将上面的message列当作DataFrame的行索引,可以将它传递给参数index_col:

#names指定列名 将messge作为行索引
df = pd.read_csv(E:/test_resourse/ex1.csv,names=[a,b,c,d,message],index_col=message)
print(df)
print(**20)

运行结果:

         a   b   c   d
message               
message  a   b   c   d
hello    1   2   3   4
world    5   6   7   8
foo      9  10  11  12

 

3.如果想读取成分层索引,则需要为index_col参数传入一个包含列序号或列名的列表:

# key1,key2,value1,value2
# one,a,1,2
# one,b,3,4
# one,c,5,6
# one,d,7,8
# two,a,9,10
# two,b,11,12
# two,c,13,14
# two,d,15,16

#读取分层索引  类似多级索引
df = pd.read_csv(E:/test_resourse/csv_mindex.csv,index_col=[key1,key2])
print(df)

运行结果:

           value1  value2
key1 key2                
one  a          1       2
     b          3       4
     c          5       6
     d          7       8
two  a          9      10
     b         11      12
     c         13      14
     d         15      16

 

4.可以使用skiprows来跳过数据中的指定行

# hey!
# a,b,c,d,message
# just wanted to make things more difficult for you
# who reads CSV files with computers, anyway?
# 1,2,3,4,hello
# 5,6,7,8,world
# 9,10,11,12,foo

# 使用skiprows来跳过数据中的指定行. 跳过无用的1,3,4行
df = pd.read_csv(E:/test_resourse/ex4.csv,skiprows=[0,2,3])
print(df)

运行结果:

   a   b   c   d message
0  1   2   3   4   hello
1  5   6   7   8   world
2  9  10  11  12     foo

 

5.缺失值的处理

# something    a    b    c    d    message
# one    1    2    3    4    NA
# two    5    6        8    world
# three    9    10    11    12    foo


result = pd.read_csv(E:/test_resourse/ex5.csv,na_values=[3.0])
print(result) #将3.0也看作缺失值对待
print(‘*‘*20)

f = {message:[foo,NA],something:[two]} result = pd.read_csv(E:/test_resourse/ex5.csv,na_values=f) print(result) #甚至可以对不同的列,指定不同的缺失值标识:

运行结果:

  something  a   b     c   d message
0       one  1   2   NaN   4     NaN
1       two  5   6   NaN   8   world
2     three  9  10  11.0  12     foo
********************
  something  a   b     c   d message
0       one  1   2   3.0   4     NaN
1       NaN  5   6   NaN   8   world
2     three  9  10  11.0  12     NaN

 

Pandas文件读取

原文:https://www.cnblogs.com/lishanstudy/p/12845726.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!