Pandas笔记之创建 Pandas DataFrame
DataFrame为Pandas的第二种主要数据结构,是具有带标签的行和列的二维数据结构,可以存储多种类型数据
import pandas as pd
data = {'Bob' : pd.Series([245, 25, 55]),
'Alice' : pd.Series([40, 110,500,45])}
df = pd.DataFrame(data)
df
打印结果
image.png
可以看出,Pandas DataFrame 的行索引从0开始,就像 Numpy ndarray 的索引一样
因为我们创建的 data字典没有标签索引,因此 Pandas 在创建 DataFrame 时自动使用数字索引
我们可以通过 pd.DataFrame()函数中使用关键字 index,为行索引添加标签
data = {'Integers' : [1,2,3],
'Flotas' : [4.5, 8.2, 9.6]}
df = pd.DataFrame(data, index = ['label 1', 'label 2', 'label 3'])
df
打印结果
image.png
Pandas笔记之访问&处理 Pandas DataFrame 中的元素
通常使用行列标签访问 DataFrame 的行 列或单个元素
示例如下:stores_items
image.png
print('How many bikes are in each store:\n', stores_items[['bikes']])
print('How many bikes and pants are in each store:\n', store_items[['bikes', 'pants']])
print('What items are in Store 1:\n',store_items.loc[['store 1']])
print('How many bikes are in Store 2:', store_items['bikes']['store 2'])
打印结果
image.png image.png
注意:访问 DataFrame 中的单个元素时,格式:dataframe[column][row]
列标签须在前,如果先提供行标签,将出错
修改DataFrame
1.添加行或者列
示例:添加每个商店的衬衫库存
store_items['shirts'] = [15,2]
store_items
打印结果
image.png
系统默认将新添加的列放置于DataFrame 的末尾
2.在指定位置添加新列
store_items.insert(2,'shoes')
在索引为2的位置插入数据,以上,不会有值,整列都是NaN
3.对列表使用算术运算符
store_items['suits'] = store_items['pants'] + store_items['shirts']
store_items
image.png
4.对列表添加一个新行
new_items = [{'bikes' : 20, 'pants': 30, 'watches': 35, 'glasses': 4}]
new_store = pd.DataFrame(new_items, index = ['store 3'])
new_store
打印结果
image.png
将创建的new_store,使用 .append()方法添加到store_items DataFrame中
store_items = store_items.append(new_store)
store_items
打印结果
image.png
注意:将新行附加到DataFrame 后,列按照字母顺序排序了
5.仅使用特定列的特定行中的数据向 DataFrame 添加新的列
示例:假设你想在商店 2 和 3 中上一批新手表,并且新手表的数量与这些商店原有手表的库存一样
store_items['new_watches'] = store_items['watches'][1:]
store_items
打印结果
image.png
6.将新列插入 DataFrames 的任何位置
dataframe.insert(loc,lable,data)方法可以将新列(具有给定列标签和给定数据)插入dataframe 的 loc 位置
示例:将名称为 shoes 的新列插入 suits 列前面。因为 suits 的数字索引值为 4,我们将此值作为loc
store_items.insert(4,'shoes',[8,5,0])
store_items
打印结果
image.png
7.删除 DataFrame 中的行和列
.pop()方法仅可以删除列
.drop()方法可以同时用于删除行和列,需借助关键字axis
示例①
store_items.pop('new _watches')
store_items
打印结果
image.png
示例②
仅删除列
store_items = store_items.drop(['watches', 'shoes'], axis = 1)
store_items
打印结果
image.png
仅删除行
store_items = store_items.drop(['store 2', 'store 1'], axis = 0)
store_items
打印结果
image.png
8.更改行和列标签:使用.rename()方法
示例:更改列标签:将bikes列标签改为hats
store_items = store_items.rename(colums = {'bikes' : 'hats'})
store_items
打印结果
image.png
示例:更改行标签
store_items = store_items.rename(index = {'store 3' : 'last store'})
store_items
问题点:行为什么用Index,不用row
9.将DataFrame 中的某一列,作为index
示例:
store_items = store_items.set_index('pants')
store_items
打印结果
image.png
网友评论