二、DataFrame
1、创建DataFrame
1) 创建DataFrame的通用函数:
df = pd.DataFrame(values,index,columns)
pd.dataFrame([[1,2,3],[4,5,6],[7,8,9]],index=['a','b','c'],columns=['bj','sh','sz'])
pd.dataFrame(np.arange(1,10).reshape(3,3),index=['a','b','c'],columns=['bj','sh','sz'])
pd.dataFrame('bj':[1,4,7],'sh':[2,5,8],'sz':[3,6,9],index=['a','b','c'])
说明:创建方法与Sries类似,Series的values参数是python中常见的一维数据类型,DataFrame的values参数是python中常见的二维数据类型。
2) 通过网页中复制数据快捷创建
import webbrowser
link = 'https://www.tiobe.com/tiobe-index/'
webbrowser.open(link)
打开界面进行复制,将数据复制到粘贴板中
df = pd.read_clipboard() #从粘贴板中读取数据
3)通过Series创建DataFrame
df = pd.DataFrame([s1,s2,s3],columns=['bj','sh','sz'])
注意:单独的s1,s2,s3是纵向排列的的Series,但是在DataFrame中是横向排列的。
自己总结:Series除了打印出来是Series格式外,其他时候可以直接当作list来操作。
2、属性
1)df.columns
通过columns生成新的DataFrame
df_new = pd.DataFrame(df,columns=['x1','x2'])
或者df_new = df[['x1','x2']]
2)df.shape 显示行列数
3)df.head() 默认显示前5行
4)df.tail() 默认显示后5行
3、获取DataFrame的列
1)获取DataFrame某一列
df.x1或df['x1']:返回值是Series,可以理解为一个DataFrame是由多个Series组成的。
2) 获取DataFrame某几列
df_new = df[['x1','x2','x3']]
4、为某列赋值
1) df['x1'] = range(10)
2) df['x1'] = numpy.arange(10)
3) df['x1'] = pd.Series(np.arange(10))
说明:类似于创建Series
5、为某列对应的特定行重新赋值
df['x1'] = pd.Series([2,3],index=[0,1])
将列为x1,行索引为0和1的值改为2,3
6、获取DadaFrame的行
for row in DataFrame.iterrows():
print(row[0],row[1])
#每个row是一个元祖,包含2个元素,row[0]是整型索引,row[1]是Series,所以从行的角度也可以看出,一个Data