pandas的DataFrame数据对象

DataFrame创建

    DataFrame是二维数组对象,DataFrame可以被看成是Series所组成的字典,并公用一个行数据。

pandas可以直接读取csv文件,使用的是read_csv函数。

a = pd.DataFrame({"one":[1,2,3],"two":[4,5,6]})
print(a)
b = pd.DataFrame({"one":[1,2,3],"two":[4,5,6]}, index=['a','b','c'])
print(b)
c=pd.read_csv("d:/abc.csv")

DataFrame属性

    

a = pd.DataFrame({"one":[1,2,3],"two":[4,5,6]})
print(a)
b = pd.DataFrame({"one":[1,2,3],"two":[4,5,6]}, index=['a','b','c'])
print(b)
print(a.index)
print(b.index)
print(a.values)
print(b.values)
print(a.T)
print(a.columns)
print(a.describe)
print(a.describe())

DataFrame的索引和切片

    按索引方式获取数据,默认先选列,再选行。建议使用loc和iloc方式来指定方式访问。loc指定使用标签的方式访问。

iloc是指定按照下标的方式获取数据。行列索引部分可以是常规索引、切片、布尔索引、花式索引等。

a = pd.DataFrame({"one":[1,2,3],"two":[4,5,6],"three":[7,8,9]})
print(a)
print(a["one"][0])
print(a.loc[0,"one"])
print(a.loc[0,])
print(a.loc[[0,2],:])

DataFrame数据对齐和缺失数据处理

    DataFrame在运算时,也需要对齐,会进行行和列分别对齐。

缺失数据可以使用fillna函数来填充,也可以通过dropna来删除NaN所在的行。

    c.dropna(how="all")    行中所有数据都为NaN才删除。
    c.dropna(axis=1)  删除列中含有NaN的列的数据。

a = pd.DataFrame({"one":[1,2,3],"two":[4,5,3],"three":[7,8,2]},index=['a','b','c'])
b = pd.DataFrame({"two":[5,2,8],"one":[4,1,6],"three":[7,3,5]},index=['a','c','b'])
print(a)
print(b)
c=a+b
print(c)
c.loc["a","three"] = np.nan
print(c)
c.fillna(0, inplace=True)
print(c)
c.dropna()
c.dropna(how="all")
c.dropna(axis=1)

DataFrame常用方法

  mean()方法用来获取平均值,默认按列求平均值,axis可以指定按行或按列,0为列,1为行。

sum()方法用来求和。sort_values()为按值进行排序,sort_index()为按索引进行排序。

a = pd.DataFrame({"one":[1,2,3],"two":[4,5,3],"three":[7,8,2]},index=['a','b','c'])
b = pd.DataFrame({"two":[5,2,8],"one":[4,1,6],"three":[7,3,5]},index=['a','c','b'])
print(a)
print(b)
print(a.mean())
print(a.mean(axis = 1))
print(b.sum())
print(b.sum(axis = 1))
print(a.sort_values(by='two'))
print(a.sort_values(by='two', ascending=False))
print(b.sort_index())
print(b.sort_index(axis=1, ascending=False))

如果你喜欢这篇文章,别忘了点赞和评论哦!

发布了175 篇原创文章 · 获赞 94 · 访问量 38万+

猜你喜欢

转载自blog.csdn.net/chenzhanhai/article/details/104620986