第二章:25+ Python 数据操作教程(第三节如何在 PYTHON 中导入数据)

本教程介绍了在 Python 中读取数据的各种方法。数据可以是任何流行的格式——CSV、TXT、XLS/XLSX (Excel)、sas7bdat (SAS)、Stata、Rdata (R) 等。在 python 环境中加载数据是分析数据的最初始步骤。

在导入外部文件时,我们需要检查以下几点 -

  1. 检查标题行是否存在
  2. 将特殊值作为缺失值处理
  3. 变量(列)中的一致数据类型
  4. 日期格式一致的日期类型变量。
  5. 读取外部数据时不会截断行

目录

1.导入CSV文件

2.从URL导入文件

3.读取文本文件

4.读取Excel文件

5.读取分隔文件

6. 读取 SAS 文件

7. 读取 Stata 文件

8.导入R数据文件

9.读取SQL表

10. 从 SPSS 文件导入数据

11.读取行和列的样本

12.导入时跳过行

13.指定值作为缺失值



安装和加载 pandas 包
pandas是一个强大的数据分析包。它使数据探索和操作变得容易。它有几个函数可以从各种来源读取数据。
如果您使用的是Anaconda,则必须已经安装了 pandas。您需要使用以下命令加载包 -
将熊猫导入为 pd
如果未安装 pandas 包,您可以通过在 Ipython 控制台中运行以下代码来安装它如果您使用的是Spyder,则可以在 Spyder 中的 Ipython 控制台中提交以下代码。
!pip 安装熊猫
如果您使用的是Anaconda,则可以尝试使用以下代码行来安装 pandas -
!conda 安装熊猫

1.导入CSV文件

重要的是要注意,在指定文件路径时,单个反斜杠不起作用您需要将其更改为正斜杠或再添加一个反斜杠,如下所示
import pandas as pd
mydata= pd.read_csv("C:\\Users\\Deepanshu\\Documents\\file1.csv")
如果原始数据文件中没有标题(标题)
mydata1 = pd.read_csv("C:\\Users\\Deepanshu\\Documents\\file1.csv", header = None )
您需要包含header = None选项来告诉 Python 数据中没有列名(标题)。
 
添加列名

我们可以使用 names= 选项来包含列名。
mydata2 = pd.read_csv("C:\\Users\\Deepanshu\\Documents\\file1.csv", header = None, names = ['ID', 'first_name', 'salary'] )
也可以使用以下命令单独添加变量名。
mydata1.columns = ['ID', 'first_name', 'salary']

2.从URL导入文件

您无需执行其他步骤即可从 URL 获取数据。只需将URL放入 read_csv() 函数(仅适用于存储在 URL 中的 CSV 文件)。
mydata = pd.read_csv("http://winterolympicsmedals.com/medals.csv")
 

3.读取文本文件

我们可以使用 read_table() 函数从文本文件中提取数据。我们还可以使用带有 sep= "\t" 的 read_csv() 从制表符分隔的文件中读取数据。
mydata = pd.read_table("C:\\Users\\Deepanshu\\Desktop\\example2.txt")
mydata = pd.read_csv("C:\\Users\\Deepanshu\\Desktop\\example2.txt", sep ="\t")

4.读取Excel文件


read_excel() 函数可用于将 excel 数据导入 Python。
mydata = pd.read_excel("https://www.eia.gov/dnav/pet/hist_xls/RBRTEd.xls",sheetname="Data 1", skiprows=2)
如果您没有在sheetname= option中指定工作表名称,则默认为第一张工作表。
 

5.读取分隔文件

假设您需要导入一个以空格分隔的文件。
mydata2 = pd.read_table("http://www.ssc.wisc.edu/~bhansen/econometrics/invest.dat", sep="\s+" , header = None)
要包含变量名称,请使用 names= 选项,如下所示 -
mydata3 = pd.read_table("http://www.ssc.wisc.edu/~bhansen/econometrics/invest.dat", sep="\s+", names=['a', 'b', 'c' , 'd'])

6. 读取 SAS 文件

我们可以使用 read_sas() 函数导入 SAS 数据文件。
mydata4 = pd.read_sas('cars.sas7bdat')

pyreadstat如果你有一个很大的 SAS 文件,你可以试试比 pandas 更快的 命名包。它相当于havenR 中的包,提供了从 SAS、SPSS 和 Stata 中读取数据的简单快捷的方法。要安装这个包,你可以使用命令pip install pyreadstat
import pyreadstat
df, meta = pyreadstat.read_sas7bdat('cars.sas7bdat')

# done! let's see what we got
print(df.head())
print(meta.column_names)
print(meta.column_labels)
print(meta.number_rows)
print(meta.number_columns)

7. 读取 Stata 文件

我们可以通过 read_stata() 函数加载 Stata 数据文件。
mydata41 = pd.read_stata('cars.dta')
pyreadstatpackage 允许您从 stata 文件中提取值标签。
import pyreadstat
df, meta = pyreadstat.read_dta("cars.dta")
要获取标签,请设置apply_value_formatsTRUE
df, meta = pyreadstat.read_dta("cars.dta", apply_value_formats=True)

8.导入R数据文件

使用pyreadr包,您可以加载.RData.Rds格式的文件,这些文件通常包含 R 数据帧。您可以使用以下命令安装此软件包-
pip 安装 pyreadr
使用read_r()函数,我们可以导入R数据格式文件。
import pyreadr
result = pyreadr.read_r('C:/Users/sampledata.RData')
print(result.keys()) # let's check what objects we got
df1 = result["df1"] # extract the pandas data frame for object df1
同样,您可以读取.Rds格式的文件。

9.读取SQL表

我们可以从 SQL 数据库(SQL Server / Teradata)中提取表。看下面的程序——
数据库服务器
您可以通过建立连接从存储在 SQL Server 中的表中读取数据。您需要有服务器、用户 ID (UID)、数据库详细信息才能建立连接。
import pandas as pd
import pyodbc 
conn = pyodbc.connect("Driver={SQL Server};Server=serverName;UID=UserName;PWD=Password;Database=RCO_DW;")
df = pd.read_sql_query('select * from dbo.Table WHERE ID > 10', conn)
df.head()
天睿数据
您需要导入Teradata 模块,这使得 python 可以轻松地与 Teradata 数据库集成。
将熊猫导入为 pd
导入 teradata
udaExec = teradata.UdaExec(appName="HelloWorld", version="1.0",
                           日志控制台=假)
session = udaExec.connect(method="odbc",
                          USEREGIONALSETTINGS="N",
                          系统=“tdprod”,
                          用户名="xxx",
                          密码="xxx");

query = "SELECT * FROM 航班"
df = pd.read_sql(查询,会话)
import pandas as pd
import teradata
udaExec = teradata.UdaExec(appName="HelloWorld", version="1.0",
                           logConsole=False)
session = udaExec.connect(method="odbc",
                          USEREGIONALSETTINGS="N",
                          system="tdprod",
                          username="xxx",
                          password="xxx");

query = "SELECT * FROM flight"
df = pd.read_sql(query , session)

解释
  • UdaExec提供 DevOps 支持功能,例如配置和日志记录。
  • 您可以在appName和中分配任何名称和版本version
  • logConsole=False告诉 Python 不要登录到控制台。
  • system="tdprod"指的是我们使用 ODBC 作为连接方法连接的系统的名称
  • USEREGIONALSETTINGS="N"用于确保可以加载浮点值并使小数点分隔符为“.”
假设你有一个.db扩展文件,它是一个数据库文件,你想从中提取数据。
import sqlite3
from pandas.io import sql
conn = sqlite3.connect('C:/Users/Deepanshu/Downloads/flight.db')
query = "SELECT * FROM flight"
results = pd.read_sql(query, con=conn)
打印结果.head()

10. 从 SPSS 文件导入数据

导入 pyreadstat
df, meta = pyreadstat.read_sav("file.sav", apply_value_formats=True)
如果您不需要值标签,请将apply_value_formats设置为 False。

11.读取行和列的样本

通过指定 nrows= 和 usecols=,您可以获取指定数量的行和列。
mydata7 = pd.read_csv("http://winterolympicsmedals.com/medals.csv", nrows =5, usecols =(1,5,7))
nrows = 5 表示您只想导入前 5 行,usecols= 指的是您要导入的指定列。

12.导入时跳过行

假设你想跳过前 5 行并想从第 6 行读取数据(第 6 行将是标题行)
mydata8 = pd.read_csv("http://winterolympicsmedals.com/medals.csv", skiprows =5)

13.指定值作为缺失值

通过包含 na_values= 选项,您可以将值指定为缺失值。在这种情况下,我们告诉 python 将点 (.) 视为缺失案例。
mydata9 = pd.read_csv("workingfile.csv", na_values=['.'])
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值