《天龙八部》是金庸的著名武侠小说、里面有很多俊男靓女、如何通过算法计算出《天龙八部》中出镜最多的美女、男主谁是出场最多的、谁的年龄最大等,剔除出现最多的角色和技能,此章节只做pandas在数据中的数据化的处理、不涉及到分词和自然语言处理,在后续章节中会持续介绍。
In [5]:
dict = [["萧峰","35","丐帮","降龙十八掌"],["段誉","25","大理王室","六脉神剑"],
["虚竹","30","灵鹫宫","小无相功"],["扫地僧","100","少林寺","易筋经"],
["鸠摩智","50","吐蕃国国师","火焰刀"],["庄聚贤","25","聚贤庄","冰蚕毒掌"],
["天山童姥","80","灵鹫宫","天长地久不老功"],["无崖子","85","逍遥派","北冥神功"],
["丁春秋","55","逍遥派","化功大法"],["李秋水","70","西夏皇后","小无相功"],
["阿紫","20","丁春秋门下","化功大法"],["王语嫣","23","曼陀山庄","武学理论家"],
["段正明","60","大理","一阳指"],["段正淳","55","大理","一阳指"],
["段延庆","65","大理","一阳指"],["阿朱","18","曼陀山庄","仪容术"],
["木婉清","18","万劫谷","修罗刀"],["钟灵","16","万劫谷","闪电貂"],
["秦红棉","36","万劫谷","双刀修罗刀"],
["甘宝宝","32","万劫谷",""],["慕容复","34","燕国","斗转星移"]] # 集合数据
print(dict)
[['萧峰', '35', '丐帮', '降龙十八掌'], ['段誉', '25', '大理王室', '六脉神剑'],
['虚竹', '30', '灵鹫宫', '小无相功'], ['扫地僧', '100', '少林寺', '易筋经'],
['鸠摩智', '50', '吐蕃国国师', '火焰刀'],
['庄聚贤', '25', '聚贤庄', '冰蚕毒掌'], ['天山童姥', '80', '灵鹫宫', '天长地久不老功'],
['无崖子', '85', '逍遥派', '北冥神功'], ['丁春秋', '55', '逍遥派', '化功大法'],
['李秋水', '70', '西夏皇后', '小无相功'], ['阿紫', '20', '丁春秋门下', '化功大法'],
['王语嫣', '23', '曼陀山庄', '武学理论家'], ['段正明', '60', '大理', '一阳指'],
['段正淳', '55', '大理', '一阳指'], ['段延庆', '65', '大理', '一阳指'],
['阿朱', '18', '曼陀山庄', '仪容术'], ['木婉清', '18', '万劫谷', '修罗刀'],
['钟灵', '16', '万劫谷', '闪电貂'], ['秦红棉', '36', '万劫谷', '双刀修罗刀'],
['甘宝宝', '32', '万劫谷', ''], ['慕容复', '34', '燕国', '斗转星移']]
通过pandas的DataFrame生成一个表格型的数据结构,并保存到csv中。
In [62]:
import pandas as pd
# 天龙八部
dict = [["萧峰","35","丐帮","降龙十八掌"],["段誉","25","大理王室","六脉神剑"],
["虚竹","30","灵鹫宫","小无相功"],["扫地僧","100","少林寺","易筋经"],
["鸠摩智","50","吐蕃国国师","火焰刀"],["庄聚贤","25","聚贤庄","冰蚕毒掌"],
["天山童姥","80","灵鹫宫","天长地久不老功"],["无崖子","85","逍遥派","北冥神功"],
["丁春秋","55","逍遥派","化功大法"],["李秋水","70","西夏皇后","小无相功"],
["阿紫","20","丁春秋门下","化功大法"],["王语嫣","23","曼陀山庄","武学理论家"],
["段正明","60","大理","一阳指"],["段正淳","55","大理","一阳指"],
["段延庆","65","大理","一阳指"],["阿朱","18","曼陀山庄","仪容术"],
["木婉清","18","万劫谷","修罗刀"],["钟灵","16","万劫谷","闪电貂"],
["秦红棉","36","万劫谷","双刀修罗刀"],["甘宝宝","32","万劫谷",""],
["慕容复","34","燕国","斗转星移"]] # 集合数据
df = pd.DataFrame(dict,columns=["人物","年龄","门派","技能"])
print("to_string格式数据:")
print(df.to_string()) # to_string() 用于返回 DataFrame 类型的数据
print("不使用to_string格式数据:")
print(df) # 输出结果为数据的前面 5 行和末尾 5 行,中间部分以 ... 代替
df.to_csv("天龙八部.csv") # 数据保存在csv,header=None设置头部为空index=None设置序号不存在
to_string格式数据:
人物 年龄 门派 技能
0 萧峰 35 丐帮 降龙十八掌
1 段誉 25 大理王室 六脉神剑
2 虚竹 30 灵鹫宫 小无相功
3 扫地僧 100 少林寺 易筋经
4 鸠摩智 50 吐蕃国国师 火焰刀
5 庄聚贤 25 聚贤庄 冰蚕毒掌
6 天山童姥 80 灵鹫宫 天长地久不老功
7 无崖子 85 逍遥派 北冥神功
8 丁春秋 55 逍遥派 化功大法
9 李秋水 70 西夏皇后 小无相功
10 阿紫 20 丁春秋门下 化功大法
11 王语嫣 23 曼陀山庄 武学理论家
12 段正明 60 大理 一阳指
13 段正淳 55 大理 一阳指
14 段延庆 65 大理 一阳指
15 阿朱 18 曼陀山庄 仪容术
16 木婉清 18 万劫谷 修罗刀
17 钟灵 16 万劫谷 闪电貂
18 秦红棉 36 万劫谷 双刀修罗刀
19 甘宝宝 32 万劫谷
20 慕容复 34 燕国 斗转星移
不使用to_string格式数据:
人物 年龄 门派 技能
0 萧峰 35 丐帮 降龙十八掌
1 段誉 25 大理王室 六脉神剑
2 虚竹 30 灵鹫宫 小无相功
3 扫地僧 100 少林寺 易筋经
4 鸠摩智 50 吐蕃国国师 火焰刀
5 庄聚贤 25 聚贤庄 冰蚕毒掌
6 天山童姥 80 灵鹫宫 天长地久不老功
7 无崖子 85 逍遥派 北冥神功
8 丁春秋 55 逍遥派 化功大法
9 李秋水 70 西夏皇后 小无相功
10 阿紫 20 丁春秋门下 化功大法
11 王语嫣 23 曼陀山庄 武学理论家
12 段正明 60 大理 一阳指
13 段正淳 55 大理 一阳指
14 段延庆 65 大理 一阳指
15 阿朱 18 曼陀山庄 仪容术
16 木婉清 18 万劫谷 修罗刀
17 钟灵 16 万劫谷 闪电貂
18 秦红棉 36 万劫谷 双刀修罗刀
19 甘宝宝 32 万劫谷
20 慕容复 34 燕国 斗转星移
将扫地僧的年龄改为55:
In [36]:
import pandas as pd
df = pd.read_csv("天龙八部.csv") # index_col=0读取时去除序列
print("取出全部:")
print(df) # 取出全部
print("取出前5条:")
print(df.head()) # 取出前5条
print("取出前2条:")
print(df.head(2)) # 取出前2条
print("取出后5条:")
print(df.tail()) # 取出后5条
print("取出后2条:")
print(df.tail(2)) # 取出后2条
print("返回表格的一些基本信息:")
print(df.info())
取出全部:
Unnamed: 0 人物 年龄 门派 技能
0 0 萧峰 35 丐帮 降龙十八掌
1 1 段誉 25 大理王室 六脉神剑
2 2 虚竹 30 灵鹫宫 小无相功
3 3 扫地僧 100 少林寺 易筋经
4 4 鸠摩智 50 吐蕃国国师 火焰刀
5 5 庄聚贤 25 聚贤庄 冰蚕毒掌
6 6 天山童姥 80 灵鹫宫 天长地久不老功
7 7 无崖子 85 逍遥派 北冥神功
8 8 丁春秋 55 逍遥派 化功大法
9 9 李秋水 70 西夏皇后 小无相功
10 10 阿紫 20 丁春秋门下 化功大法
11 11 王语嫣 23 曼陀山庄 武学理论家
12 12 段正明 60 大理 一阳指
13 13 段正淳 55 大理 一阳指
14 14 段延庆 65 大理 一阳指
15 15 阿朱 18 曼陀山庄 仪容术
16 16 木婉清 18 万劫谷 修罗刀
17 17 钟灵 16 万劫谷 闪电貂
18 18 秦红棉 36 万劫谷 双刀修罗刀
19 19 甘宝宝 32 万劫谷 NaN
20 20 慕容复 34 燕国 斗转星移
取出前5条:
Unnamed: 0 人物 年龄 门派 技能
0 0 萧峰 35 丐帮 降龙十八掌
1 1 段誉 25 大理王室 六脉神剑
2 2 虚竹 30 灵鹫宫 小无相功
3 3 扫地僧 100 少林寺 易筋经
4 4 鸠摩智 50 吐蕃国国师 火焰刀
取出前2条:
Unnamed: 0 人物 年龄 门派 技能
0 0 萧峰 35 丐帮 降龙十八掌
1 1 段誉 25 大理王室 六脉神剑
取出后5条:
Unnamed: 0 人物 年龄 门派 技能
16 16 木婉清 18 万劫谷 修罗刀
17 17 钟灵 16 万劫谷 闪电貂
18 18 秦红棉 36 万劫谷 双刀修罗刀
19 19 甘宝宝 32 万劫谷 NaN
20 20 慕容复 34 燕国 斗转星移
取出后2条:
Unnamed: 0 人物 年龄 门派 技能
19 19 甘宝宝 32 万劫谷 NaN
20 20 慕容复 34 燕国 斗转星移
返回表格的一些基本信息:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 21 entries, 0 to 20
Data columns (total 5 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Unnamed: 0 21 non-null int64
1 人物 21 non-null object
2 年龄 21 non-null int64
3 门派 21 non-null object
4 技能 20 non-null object
dtypes: int64(2), object(3)
memory usage: 968.0 bytes
None
替换表格中空的数据为123456
In [64]:
import pandas as pd
df = pd.read_csv("天龙八部.csv") # index_col=0读取时去除序列
df.fillna(123456, inplace = True) # 替换表格中空的数据为123456
print("取出全部:")brprint(df) # 取出全部
取出全部:
Unnamed: 0 人物 年龄 门派 技能
0 0 萧峰 35 丐帮 降龙十八掌
1 1 段誉 25 大理王室 六脉神剑
2 2 虚竹 30 灵鹫宫 小无相功
3 3 扫地僧 100 少林寺 易筋经
4 4 鸠摩智 50 吐蕃国国师 火焰刀
5 5 庄聚贤 25 聚贤庄 冰蚕毒掌
6 6 天山童姥 80 灵鹫宫 天长地久不老功
7 7 无崖子 85 逍遥派 北冥神功
8 8 丁春秋 55 逍遥派 化功大法
9 9 李秋水 70 西夏皇后 小无相功
10 10 阿紫 20 丁春秋门下 化功大法
11 11 王语嫣 23 曼陀山庄 武学理论家
12 12 段正明 60 大理 一阳指
13 13 段正淳 55 大理 一阳指
14 14 段延庆 65 大理 一阳指
15 15 阿朱 18 曼陀山庄 仪容术
16 16 木婉清 18 万劫谷 修罗刀
17 17 钟灵 16 万劫谷 闪电貂
18 18 秦红棉 36 万劫谷 双刀修罗刀
19 19 甘宝宝 32 万劫谷 123456
20 20 慕容复 34 燕国 斗转星移
将扫地僧的年龄改为55:
In [66]:
import pandas as pd
df = pd.read_csv("天龙八部.csv") # index_col=0读取时去除序列
df.loc[df['人物']=='扫地僧','年龄'] = 55
print(df.to_string())
Unnamed: 0 人物 年龄 门派 技能
0 0 萧峰 35 丐帮 降龙十八掌
1 1 段誉 25 大理王室 六脉神剑
2 2 虚竹 30 灵鹫宫 小无相功
3 3 扫地僧 55 少林寺 易筋经
4 4 鸠摩智 50 吐蕃国国师 火焰刀
5 5 庄聚贤 25 聚贤庄 冰蚕毒掌
6 6 天山童姥 80 灵鹫宫 天长地久不老功
7 7 无崖子 85 逍遥派 北冥神功
8 8 丁春秋 55 逍遥派 化功大法
9 9 李秋水 70 西夏皇后 小无相功
10 10 阿紫 20 丁春秋门下 化功大法
11 11 王语嫣 23 曼陀山庄 武学理论家
12 12 段正明 60 大理 一阳指
13 13 段正淳 55 大理 一阳指
14 14 段延庆 65 大理 一阳指
15 15 阿朱 18 曼陀山庄 仪容术
16 16 木婉清 18 万劫谷 修罗刀
17 17 钟灵 16 万劫谷 闪电貂
18 18 秦红棉 36 万劫谷 双刀修罗刀
19 19 甘宝宝 32 万劫谷 NaN
20 20 慕容复 34 燕国 斗转星移
大于等于100岁的人员年龄改为10
In [67]:
import pandas as pd
df = pd.read_csv("天龙八部.csv") # index_col=0读取时去除序列
for i in df.index:br
if df.loc[i, "年龄"] >= 100:
df.loc[i, "年龄"] = 10
print(df.to_string())
Unnamed: 0 人物 年龄 门派 技能
0 0 萧峰 35 丐帮 降龙十八掌
1 1 段誉 25 大理王室 六脉神剑
2 2 虚竹 30 灵鹫宫 小无相功
3 3 扫地僧 10 少林寺 易筋经
4 4 鸠摩智 50 吐蕃国国师 火焰刀
5 5 庄聚贤 25 聚贤庄 冰蚕毒掌
6 6 天山童姥 80 灵鹫宫 天长地久不老功
7 7 无崖子 85 逍遥派 北冥神功
8 8 丁春秋 55 逍遥派 化功大法
9 9 李秋水 70 西夏皇后 小无相功
10 10 阿紫 20 丁春秋门下 化功大法
11 11 王语嫣 23 曼陀山庄 武学理论家
12 12 段正明 60 大理 一阳指
13 13 段正淳 55 大理 一阳指
14 14 段延庆 65 大理 一阳指
15 15 阿朱 18 曼陀山庄 仪容术
16 16 木婉清 18 万劫谷 修罗刀
17 17 钟灵 16 万劫谷 闪电貂
18 18 秦红棉 36 万劫谷 双刀修罗刀
19 19 甘宝宝 32 万劫谷 NaN
20 20 慕容复 34 燕国 斗转星移
删除年龄小于等于16岁的钟灵
In [68]:
import pandas as pd
df = pd.read_csv("天龙八部.csv") # index_col=0读取时去除序列
for i in df.index:
if df.loc[i, "年龄"] <= 16:
df.drop(i, inplace = True)
print(df.to_string())
Unnamed: 0 人物 年龄 门派 技能
0 0 萧峰 35 丐帮 降龙十八掌
1 1 段誉 25 大理王室 六脉神剑
2 2 虚竹 30 灵鹫宫 小无相功
3 3 扫地僧 100 少林寺 易筋经
4 4 鸠摩智 50 吐蕃国国师 火焰刀
5 5 庄聚贤 25 聚贤庄 冰蚕毒掌
6 6 天山童姥 80 灵鹫宫 天长地久不老功
7 7 无崖子 85 逍遥派 北冥神功
8 8 丁春秋 55 逍遥派 化功大法
9 9 李秋水 70 西夏皇后 小无相功
10 10 阿紫 20 丁春秋门下 化功大法
11 11 王语嫣 23 曼陀山庄 武学理论家
12 12 段正明 60 大理 一阳指
13 13 段正淳 55 大理 一阳指
14 14 段延庆 65 大理 一阳指
15 15 阿朱 18 曼陀山庄 仪容术
16 16 木婉清 18 万劫谷 修罗刀
18 18 秦红棉 36 万劫谷 双刀修罗刀
19 19 甘宝宝 32 万劫谷 NaN
20 20 慕容复 34 燕国 斗转星移
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved