IT🐶胶水Python

Python一周一模块:pandas-2

2019-06-21  本文已影响6人  爱折腾的大懒猪

读取/写入数据

读取/写入表格型文本文件

现在推荐都使用read_csv来读取一定分隔符分隔的数据, read_table函数将被废弃.

# 可以使用多个键作为行索引(同理列索引也可以多重)
'''
key1,key2,value1,value2
a,a,1,2
a,b,3,4
b,c,5,6
b,d,7,8
'''

data = pd.read_csv("data.txt",index_col=["key1","key2"])
print(data)

'''
            value1  value2
key1 key2
a     a       1       2
      b       3       4
b     c       5       6
      d       7       8
'''

# 指定某一列的数据类型
pd.read_csv("data.txt", dtype={2:np.float64,3:'People'})

# 使用正则表达式作为分隔符, 例如下面会将单个或多个空格类符号作为分隔符. 
pd.read_csv("data.txt",sep="\s+")

# 只将某些列的某些值作为NaN, 使用字典.
data1 = pd.read_csv("data.txt",na_values={'name':['python','c++']})

# 位置  1    6    11      20   24      33   37   43
data=' id8141    360.242940   149.910199   11950.7\n' \
     ' id1594    444.953632   166.985655   11788.4\n' \
     ' id1849    364.136849   183.628767   11806.2\n' \
     ' id1230    413.836124   184.375703   11916.8\n' \
     ' id1948    502.953953   173.237159   12468.3'

colspecs = [(1, 7), (11, 21), (24, 34), (37, 44)] #栏位严格的位置
pd.read_fwf(pd.io.common.StringIO(data), colspecs=colspecs, header=None, index_col=0)
colspecs = [(0, 10), (11, 21), (24, 34), (37, 44)] # 实际数据前后包含部分空格不影响.
pd.read_fwf(pd.io.common.StringIO(data), widths=[8,13,13,11], header=None) # 使用width指定长度.
pd.read_fww(pd.io.common.StringIO(data), header=None) # 用前100行来推断, 结果同上. 

读取 JSON格式

读取Excel格式

读取SQL

import pandas as pd
import sqlite3

# Read sqlite query results into a pandas DataFrame
con = sqlite3.connect("data/portal_mammals.sqlite")
df = pd.read_sql_query("SELECT * from surveys", con)

# Verify that result of SQL query is stored in the dataframe
print(df.head())

con.close()

其他格式

上一篇 下一篇

猜你喜欢

热点阅读