pandas学习笔记:常用函数

# 将用pandas建立的表(DataFrame)保存成excel或csv格式:

import pandas as pd

df = pd.DataFrame() # 创建一个dataframe类(空表),并将其赋值给df

df.to_excel('excel.xlsx') # 将df以excel的格式保存于excel.xlsx中

# 如果想要保存成csv的话:df.to_csv('xxx.csv')

# 在pandas里面,DataFrame译为数据帧,相当于excel里面的worksheet(一个表):

pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False)

# data : 可以是python的字典、列表、numpy的数组或DataFrame

# index : 如果没有设置为哪一列的话,默认为0, 1, 2, 3, ...

# columns : 列名,一般以列表的形式传入

# dtype : 数据类型(没太用)

# copy : (没太用)

# DataFrame输入参数事例:

# 以字典的形式输入

df = pd.DataFrame({'ID':[0,1,2,3], 'name':['chan','li','long','huang'], 'age':[21,24,23,19]})

print(df)


# 输出结果(字典)

# 多出的第一列为pandas默认的index,如想去除第一列,可把index设为“ID”,即ID为此表的index:

df = pd.DataFrame({'ID':[0,1,2,3], 'name':['chan','li','long','huang'], 'age':[21,24,23,19]})

df = df.set_index('ID')  # 返回一个新的DataFrame,然后将新的DataFrame赋给df,用以覆盖掉之前的df

print(df)


# 输出结果(去掉默认的index)

# 细心的朋友会注意到上面传入数据的时候,顺序依次是ID、name、age,但是输出的时候却顺序乱了,这个原因主要是因为python里面的字典是无序的,如果想让输出的顺序跟输入时的顺序一样的话,只需引入 columns=['ID', 'name', 'age'] 来限定顺序即可:

df = pd.DataFrame({'ID':[0,1,2,3], 'name':['chan','li','long','huang'], 'age':[21,24,23,19]}, columns=['ID', 'name', 'age'])

print(df)


# 加columns参数输出结果

# 以列表的形式输入

df = pd.DataFrame([[0,1,2,3], ['chan','li','long','huang'], [21,24,23,19]])

print(df)


# 输出结果(列表)

# 可见以字典形式导进去的数据跟列表形式导进去的数据,他们的行列刚好相反,且以列表形式导进的数据,自动生成了列名以及index。那么如何让这次输出结果变成跟上次输出结果一样呢:

# 先把行名命名好,再旋转

df.index=['ID', 'name', 'age']  

print(df)


# 更改行名

# DataFrame有两个函数分别为:stack()和unstack(),unstack()是stack()的你操作,这里只讨论unstack()

# 当有列索引时,unstack()把列索引转换到最外层行索引;当没有列索引是,unstack()把最内层行索引转换成列索引。因此对一个DataFrame做两次unstack()操作即可实现行列转换。

df = df.unstack().unstack()  # 返回一个新的dataframe,然后赋值给df,用以覆盖之前的df

print(df)


# 输出结果

# 如果想要去第一列的话,可以用上面介绍的方法,即:

df = df.set_index('ID')  # 返回一个新的DataFrame,然后将新的DataFrame赋给df,用以覆盖掉之前的df

print(df)


#输出结果

# 以numpy数组形式输入

import numpy as np

arr = np.arange(15).reshape(3,5)  # 生成0-14一共15个数,并且格式化为3行5列

df = pd.DataFrame(arr)

print(arr)

print('=====================')

print(df)


#以numpy数组格式导入数据的输出结果

# 可见,numpy导入的格式跟python的list导入的个数的到的结果是相似的。

# 以DataFrame格式导入

df1 = pd.DataFrame(df)

print(df1)


# 输出结果

# 相当于返回一个新的一样的表。

(更新中。。。)

你可能感兴趣的:(pandas学习笔记:常用函数)