Pandas是Python的数据分析利器,DataFrame是Pandas进行数据分析 的基本结构,可以把DataFrame视为一个二维数据表,每一行都表示 一个数据记录。本文将介绍创建Pandas DataFrame的6种方法。
创建Pandas数据帧的六种方法如下:
- 创建空DataFrame
- 手工创建DataFrame
- 使用List创建DataFrame
- 使用Dict创建DataFrme
- 使用Excel文件创建DataFrame
- 使用CSV文件创建DataFrame
1、创建空的Pandas DataFrame
学编程,上汇智网,在线编程环境,一对一助教指导。
首先我们看一下如何创建一个空的DataFrame(数据帧):
1 | pd.DataFrame(columns=['A', 'B', 'C'], index=[0,1,2]) |
columns参数用来定义列名,index参数用来定义行号。上面的代码创建了 一个3行3列的二维数据表,结果看起来是这样:
嗯,所有数据项都是NaN。
2、手工创建Pandas DataFrame
接下来让我们看看如何使用pd.DataFrame
手工创建一个Pandas数据帧:
1 | df = pd.DataFrame(data=['Apple','Banana','Cherry','Dates','Eggfruit']) |
使用data参数来声明数据,结果看起来是这样:
由于我们没有定义数据帧的列名,因此Pandas默认使用序号作为列名。和原来一样, 可以使用columns参数来声明列名:
1 | df = pd.DataFrame(data=['Apple','Banana','Cherry','Dates', 'Eggfruit'], |
结果如下:
最左侧的列被称为索引,默认从0开始,和原来一样我们用index自行定义:
1 | df = pd.DataFrame(data=['Apple','Banana','Cherry','Dates','Eggfruit'], |
现在的数据帧看起来是这样:
那么如果要添加一个Quantity列来表示水果数量该怎么做?
1 | pd.DataFrame(data=[['Apple',5], |
注意data参数和colums参数都进行了相应的调整。现在的DataFrame这样:
3、使用列表创建Pandas DataFrame
学编程,上汇智网,在线编程环境,一对一助教指导。
假设我们有一个列表:
1 | fruits_list = ['Apple','Banana','Cherry','Dates','Eggfruit'] |
要把列表转换为DataFrame,直接将列表传入pd.DataFrame
即可:
1 | pd.DataFrame(fruits_list) |
得到的数据帧结构如下:
当然你可以用columns参数来定义列名,或者用index来声明行号:
1 | pd.DataFrame(fruits_list, |
结果如下:
4、使用字典创建Pandas DataFrame
字典就是一组键/值对:
1 | dict = {key1 : value1, key2 : value2, key3 : value3} |
当我们将上述字典对象转换为DataFrame时,看起来是这样:
容易注意到,字段的键对应成为DataFrame的列,而所有的值对应数据。 记住这个对应关系。
现在假设我们要创建一个如下形状的DataFrame:
由于列名为Fruits、Quantity和Color,因此对应的字典也应当 有这几个键,而每一行的值则对应字典中的键值,字典应该是 如下的结构:
1 | fruits_dict = { 'Fruits':['Apple','Banana','Cherry','Dates','Eggfruit'], |
现在让我们将这个字典转换为DataFrame,一句话的事儿:
1 | pd.DataFrame(fruits_dict) |
结果如下:
5、将Excel文件转换为Pandas DataFrame
如果你有一个excel文件,例如“fruits.xlsx“…
那么可以使用下面的代码将其转换为Pandas DataFrame:
1 | fruits = pd.read_excel('fruits.xlsx') |
得到的数据帧看起来是这样:
6、将CSV文件转换为Pandas DataFrame
假设你有一个CSV文件,例如“fruits.csv“,可以使用如下的代码 将其转换为DataFrame:
1 | fruits = pd.read_csv('fruits.csv') |
也是一句话的事儿。
原文链接:5 common ways to create Pandas dataframe
汇智网翻译整理,转载请标明出处