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