以泰坦尼克号生还概率预测的训练集作为演示
首先在开头导入pandas库
import pandas as pd
在pandas中 可以通过read_csv()函数读取csv文件
test = pd.read_csv("./test.csv")#文件路径
随后我们打印看一下
print(test)
PassengerId Pclass ... Cabin Embarked
0 892 3 ... NaN Q
1 893 3 ... NaN S
2 894 2 ... NaN Q
3 895 3 ... NaN S
4 896 3 ... NaN S
5 897 3 ... NaN S
6 898 3 ... NaN Q
7 899 2 ... NaN S
8 900 3 ... NaN C
9 901 3 ... NaN S
10 902 3 ... NaN S
11 903 1 ... NaN S
12 904 1 ... B45 S
13 905 2 ... NaN S
14 906 1 ... E31 S
15 907 2 ... NaN C
16 908 2 ... NaN Q
17 909 3 ... NaN C
18 910 3 ... NaN S
19 911 3 ... NaN C
20 912 1 ... NaN C
21 913 3 ... NaN S
22 914 1 ... NaN S
23 915 1 ... NaN C
24 916 1 ... B57 B59 B63 B66 C
25 917 3 ... NaN S
26 918 1 ... B36 C
27 919 3 ... NaN C
28 920 1 ... A21 S
29 921 3 ... NaN C
.. ... ... ... ... ...
388 1280 3 ... NaN Q
389 1281 3 ... NaN S
390 1282 1 ... B24 S
391 1283 1 ... D28 S
392 1284 3 ... NaN S
393 1285 2 ... NaN S
394 1286 3 ... NaN S
395 1287 1 ... C31 S
396 1288 3 ... NaN Q
397 1289 1 ... B41 C
398 1290 3 ... NaN S
399 1291 3 ... NaN Q
400 1292 1 ... C7 S
401 1293 2 ... NaN S
402 1294 1 ... NaN C
403 1295 1 ... NaN S
404 1296 1 ... D40 C
405 1297 2 ... D38 C
406 1298 2 ... NaN S
407 1299 1 ... C80 C
408 1300 3 ... NaN Q
409 1301 3 ... NaN S
410 1302 3 ... NaN Q
411 1303 1 ... C78 Q
412 1304 3 ... NaN S
413 1305 3 ... NaN S
414 1306 1 ... C105 C
415 1307 3 ... NaN S
416 1308 3 ... NaN S
417 1309 3 ... NaN C
[418 rows x 11 columns]
我们需要展示的比较完全,所以需要去掉省略号,并且不需要这么多行数据
在开头使用set_option()函数读取csv文件
pd.set_option('max_columns',200)
这个函数的用法是pandas.set_option(pat, value)
官方文档
常用的大概有:max_columns设置最大列数;max_rows设置最大行数;max_colwidth设置一格中最大字符数
然后使用DataFrame.head()获取前几行内容,然后打印一下。
不过需要注意,head()函数实际上类似于一个引用,如果想在修改t5时不影响test,需要使用DataFrame.copy()。
另外如果不使用copy()的话,可能会出现A value is trying to be set on a copy of a slice from a DataFrame错误。
#t5 = test.head(5)
t5 = test.head(5).copy()
print(t5)
PassengerId Pclass Name 0 \
0 892 3 Kelly, Mr. James 1
1 893 3 Wilkes, Mrs. James (Ellen Needs) 1
2 894 2 Myles, Mr. Thomas Francis 1
3 895 3 Wirz, Mr. Albert 1
4 896 3 Hirvonen, Mrs. Alexander (Helga E Lindqvist) 1
Sex Age SibSp Parch Ticket Fare Cabin Embarked
0 male 34.5 0 0 330911 7.8292 NaN Q
1 female 47.0 1 0 363272 7.0000 NaN S
2 male 62.0 0 0 240276 9.6875 NaN Q
3 male 27.0 0 0 315154 8.6625 NaN S
4 female 22.0 1 1 3101298 12.2875 NaN S
我们看一下上面的打印数据,也许是因为太长了,有了个续行的反斜杠,不过这个影响不大。但是相比之下,可以发现少了最后显示行数和列数的语句
我仍然想知道行列数,所以可以使用DataFrame.shape获取他的大小,或者直译形状也可以
print(t5.shape)
(5, 11)
接下来我们尝试一下添加和删除列
插入列的语法是DataFrame.insert(loc, column, value[, …]),loc是插入的位置,column是列名,value既可以一个值也可以是一个列表,如果value是一个值,该列全部为value,如果value是一个列表,那么这个列表必须和DataFrame的行数相同,该列会由value中的值依次填充
或者也可以使用插入列的语法是DataFrame[column] = value[, …]的形式在末尾添加。此外还有concat(),reindex()等
删除可以用drop(),并不修改原数据,而是返回一个修改后的数据,既可以删除列也可以删除行,DataFrame.drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise')。labels即要删除的行列名,和axis一起起作用,同时删除多个时用列表。或者也可以使用index和columns直接指定要删除的行列
t5.loc[row] = value[, …]可以在最后添加一行,不过对于行的修改需求通常较少
t5['Pclasssssss'] = t5.Pclass
t5 = t5.drop('Pclass',axis=1)
print(t5)
PassengerId Name Sex Age \
0 892 Kelly, Mr. James male 34.5
1 893 Wilkes, Mrs. James (Ellen Needs) female 47.0
2 894 Myles, Mr. Thomas Francis male 62.0
3 895 Wirz, Mr. Albert male 27.0
4 896 Hirvonen, Mrs. Alexander (Helga E Lindqvist) female 22.0
SibSp Parch Ticket Fare Cabin Embarked Pclasssssss
0 0 0 330911 7.8292 NaN Q 3
1 1 0 363272 7.0000 NaN S 3
2 0 0 240276 9.6875 NaN Q 2
3 0 0 315154 8.6625 NaN S 3
4 1 1 3101298 12.2875 NaN S 3
有趣的是
t5.PassengerId += 100
可以运行