一. 简答题(共2题,100分)
- (简答题, 50分)
- 创建并访问DataFrame对象。
创建3×3DataFrame数据对象:数据内容为1-9;行索引为字符a,b,c;列索引为字符串‘one’,‘two’,‘three’;
查询列索引为‘two’和‘three’两列数据;
查询第0行、第2行、第0列、第2列数据;
筛选第1列中值大于2的所有行数据,另存为data1对象;
为data1添加一列数据,列索引为‘four’,值都为10;
将data1所有值大于9的数据修改为8;
删除data1中第0行和第1行数据。
【提示】
1)生成数据,使用numpy的arange()函数和reshape()函数;
2)使用 data>9生成布尔型的DataFrame,用于整个DataFrame的数据过滤。
import pandas as pd
import numpy as np
from pandas import Series,DataFrame
data = DataFrame(np.arange(1,10).reshape(3,3),index = ['a','b','c'],columns = ['one','two','three']) #(1
print(data.loc[:,['two','three']]) #(2
print(data.iloc[[0,2],:]) #(3
print(data.iloc[:,[0,2]]) #(4
data1 = data.loc[data.iloc[:,1] > 2]
print(data1) #(5
data1.loc[:,'four'] = 10
print(data1) #(6
data1[data1>9]=8
print(data1) #(7
print(data1.drop(data1.index[0:2],axis = 0)) #(8
-
(简答题, 50分)
海伦一直使用在线交友网站寻找适合的约会对象, 她将交友数据存放在datingTestSet.xls文件中。1)从文件中读取有效数据保存到Dataframe对象中,跳过所有文字解释行;
2)列索引名设为 [‘flymiles’,‘videogame’,‘icecream’,'type‘];
3)显示读取到的前5条数据;
4)显示所有’type’为’largeDoses‘的数据;
5)将平均每周玩视频游戏时间超过10的数据都改成10;
6)将修改后的DataFrame对象保存到文件中,保留行、列索引。
datingTestSet.csv`
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
dT = pd.read_csv('C:\\python\\datingTestSet.csv',header=None,names=['flymiles','videogame','icecream','type'],skiprows=2) #(1 (2
print(dT[:5]) #(3
print(dT[dT['type'] == 'largeDoses']) #(4
mask = dT['videogame'] > 10
dT.loc[mask,'videogame'] = 10 #(5
print(dT)
dT.to_csv('C:\\python\\datingTestSet.csv',mode='w') #(6