Pandas 基础(3) - 生成 Dataframe 的几种方式

这一节想总结一下 生成 Dataframe 的几种方式:

  1. CSV
  2. Excel
  3. python dictionary
  4. List of tuples
  5. List of dictionary

下面分别一一介绍具体的实现方式:

  • 通过 csv 文件
    这里补充一个知识点, 就是如果要读取的文件不在 jupyter 所在的文件夹, 则可以通过绝对路径的方式引入.
df = pd.read_csv("/Users/rachel/Downloads/weather.csv")
  • 通过 Excel 文件
    这里的第二个参数是必填项, 因为要指明具体读取 excel 表中的哪个 sheet.
df = pd.read_excel("/Users/rachel/Downloads/weather.xlsx", "weather")

还有一个小坑, 就是在初次运行的时候有可能会提示错误, 根据错误提示, 大概可以了解到, 要读取 excel 文件, 还需要一个 xlrd 的包, 在终端运行下面命令就好了

pip3 install xlrd
  • 通过 python dictionary (为了方便大家日后可以更好地理解英文文档, 这里的一些专业名词, 我就都不翻译了)
weather_data = {
    ‘day‘: [‘1/1/2017‘,‘1/2/2017‘,‘1/3/2017‘],
    ‘temperature‘: [32,35,28],
    ‘windspeed‘: [6,7,2],
    ‘event‘: [‘Rain‘, ‘Sunny‘, ‘Snow‘]
}
df = pd.DataFrame(weather_data)
  • 通过 List of tuples
weather_data = [
    (‘1/1/2017‘,32,6,‘Rain‘),
    (‘1/2/2017‘,35,7,‘Sunny‘),
    (‘1/3/2017‘,28,2,‘Snow‘)
]
df = pd.DataFrame(data=weather_data, columns=[‘day‘,‘temperature‘,‘windspeed‘,‘event‘])

上面例子中, weather_data 的数据结构是一个 list(特点是中括号), list 中的每一个元素就是一个 tuple, 由于原数据没有指明列名, 所以在创建 dataframe 的时候, 需要指明列名.

  • 通过 List of dictionary, 从名字就可以读出来下面的数据结构是一个 list, list 中的每个元素又是一个 dictionary.
weather_data = [
    {‘day‘: ‘1/1/2017‘, ‘temperature‘: 32, ‘windspeed‘: 6, ‘event‘: ‘Rain‘},
    {‘day‘: ‘1/2/2017‘, ‘temperature‘: 35, ‘windspeed‘: 7, ‘event‘: ‘Sunny‘},
    {‘day‘: ‘1/3/2017‘, ‘temperature‘: 28, ‘windspeed‘: 2, ‘event‘: ‘Snow‘},

]
df = pd.DataFrame(data=weather_data, columns=[‘day‘,‘temperature‘,‘windspeed‘,‘event‘])

上面简要介绍了 5 中生成 dataframe 的方式, 其实 Pandas 还支持很多种文件格式的输入输出, 具体可以参考下官方文档 https://pandas.pydata.org/pandas-docs/version/0.22/io.html

有任何问题或意见, 欢迎留言交流哦~~~

原文地址:https://www.cnblogs.com/rachelross/p/10405841.html

时间: 2024-07-30 10:18:54

Pandas 基础(3) - 生成 Dataframe 的几种方式的相关文章

Spark SQL初始化和创建DataFrame的几种方式

一.前述       1.SparkSQL介绍 Hive是Shark的前身,Shark是SparkSQL的前身,SparkSQL产生的根本原因是其完全脱离了Hive的限制. SparkSQL支持查询原生的RDD. RDD是Spark平台的核心概念,是Spark能够高效的处理大数据的各种场景的基础. 能够在Scala中写SQL语句.支持简单的SQL语法检查,能够在Scala中写Hive语句访问Hive数据,并将结果取回作为RDD使用.     2.Spark on Hive和Hive on Spa

spark创建DataFrame的几种方式

package com.hollysys.spark import java.util import org.apache.spark.sql.types._ import org.apache.spark.sql.{Row, SQLContext, SparkSession} /** * Created by shirukai on 2018/7/17 * 创建DataFrame的几种方式 */ object CreateDataFrameTest { def main(args: Array

生成Webservice的两种方式(Axis2,CXf2.x)

一天之中,用了各种方式生成webservice,就是为了node.js能和程序顺利通信.最终还是用axis2成功了.工作基本完成了,现在可以总结一下. 关于生成方式,推荐使用eclipse,比较方便,具体方式,上篇博文有转载,axis2和cxf2.x都是如此.注意:不是在项目上new一个webservice,是在你要作为webservice调用类的上面new一个. 具体代码,和测试代码,均通过测试的. 一.Axis2 服务端: package cn.wang; public class Even

利用"SQL"语句自动生成序号的两种方式

1.首先,我们来介绍第一种方式: ◆查询的SQL语句如下: select row_number() over (order by name) as rowid, sysobjects.[name] from sysobjects ◆运行的结果: rowid   name 1           all_columns 2           all_objects 3           all_parameters 4           all_sql_modules 5          

第七章、函数基础之定义函数的三种方式03

目录 第七章.函数基础之定义函数的三种方式03 一.无参函数 二.有参函数 三.空函数 第七章.函数基础之定义函数的三种方式03 一.无参函数 定义函数时参数是函数体接收外部传值的一种媒介 在函数阶段括号没有参数就是无参函数.调用时不需要传入实参 如果函数体代码逻辑不需要依赖外部传入值,必须定义成无参函数 def func(): print('hello nick') func() # hello nick 二.有参函数 在函数阶段括号有参数就是有参函数.调用时需要传入实参 如果函数体代码逻辑需

Spark RDD转换成DataFrame的两种方式

Spark SQL支持两种方式将现有RDD转换为DataFrame.第一种方法使用反射来推断RDD的schema并创建DataSet然后将其转化为DataFrame.这种基于反射方法十分简便,但是前提是在您编写Spark应用程序时就已经知道RDD的schema类型.第二种方法是通过编程接口,使用您构建的StructType,然后将其应用于现有RDD.虽然此方法很麻烦,但它允许您在运行之前并不知道列及其类型的情况下构建DataSet 方法如下 1.将RDD转换成Rows 2.按照第一步Rows的结

PHP生成word的三种方式

摘要: 最近工作遇到关于生成word的问题 现在总结一下生成word的三种方法. btw:好像在博客园发表博客只要是标题带PHP的貌似点击量都不是很高(哥哥我标题还是带上PHP了),不知道为什么,估计博客园上net技术大牛比较多吧,如果把java,.net,php比作程序员的女友,那么java是Oracle门下的大家闺秀,.net微软旗下的名门望族,PHP则是草根门下的山村野姑,这让我等PHP草民闷骚男情何以堪情何以堪..牢骚发完了,正式写博客吧 正文 PHP生成word原理 利用windows

C++中使用new为一个变量动态生成存储空间的3种方式

1 // 使用new动态分配存储空间 2 3 #include<iostream> 4 using std::cout; 5 6 int main() 7 { 8 // 第1种方式 9 int *a=new int; 10 *a=1; 11 cout<<"使用第一种方式进行动态分配存储空间的结果为:\n" 12 <<"*a= "<<*a<<std::endl; 13 // 第2种方式 14 int *b=n

【JavaSE基础】生成随机数的三种方法

方法一: (数据类型)(最小值+Math.random()*(最大值-最小值+1)) 举例:  (int)(1+Math.random()*(10-1+1)) 生成1-10的随机数. 方法二: (数据类型)最小值+Math.random()*最大值 举例:  (int)(1+Math.random()*10) 生成1-10的随机数. 方法三:  通过java.util包中的Random类的nextInt方法来得到1-10的int随机数  Random ra = new Random();  ra