6. 数据新增-新增行 指定位置
在第2行新增一行数据
df1 = df_new.iloc[:1, :] df2 = df_new.iloc[1:, :] df3 = pd.DataFrame([[i for i in range(len(df_new.columns))]], columns=df_new.columns) df3
输出为:
df_new = pd.concat([df1, df3, df2], ignore_index=True) # 索引会重新生成 df_new
输出为:
1.4 数据删除
1. 数据删除-删除指定行
# 数据删除|删除行 # 删除 df 第一行 df_new.drop(1)
输出为:
2. 数据删除-指定多行(条件)
# 数据删除|删除行(条件) df_new.drop(df_new[df_new.金牌数<20].index)
输出为:
3. 数据删除-删除列
# 数据删除|删除列 # 删除刚刚新增的 比赛地点 列 df_new.drop(columns=['比赛地点'])
输出为:
4. 数据删除-删除多列
删除 df 的 7、8、9、10 列
df_new.drop(df_new.columns[[7,8,9,10]], axis=1)
输出为:
1.5 数据筛选
1. 数据筛选-筛选指定列号
提取第 1、2、3、4 列
# 提取第 1、2、3、4 列 df_new.iloc[:,[0,1,2,3]]
输出为:
提取第 奇数列
# 筛选全部 奇数列 df_new.iloc[:,[i % 2 != 0 for i in range(len(df_new.columns))]]
输出为:
2. 数据筛选-筛选指定列名
# 提取 金牌数、银牌数、铜牌数 三列 df_new[['国家奥委会','金牌数','银牌数','铜牌数']]
输出为:
提取全部列名中以 “数” 结尾的列
# 提取全部列名中以 “数” 结尾的列 df_new.loc[:, df_new.columns.str.endswith('数')]
输出为:
4. 数据筛选-筛选指定行
提取 金牌数 不等于 39 的行
# 提取 金牌数 不等于 39 的行 df_new.loc[~(df_new['金牌数'] == 39)]
输出为:
提取全部 奇数行
# 提取全部 奇数行 df_new[[i%2==1 for i in range(len(df_new.index))]]
输出为:
提取 中国、美国、英国、日本、巴西 五行数据
# 筛选行|条件(指定值) # 提取 中国、美国、英国、日本、巴西 五行数据 country_list = ["中国","美国","英国","日本","巴西"] df_new.loc[df_new["国家奥委会"].isin(country_list)]
输出为:
提取 中国、美国、英国、日本、巴西 五行数据 并金牌数小于30
# 筛选行|多条件 # 提取 中国、美国、英国、日本、巴西 五行数据 并金牌数小于30 df_new.loc[(df_new['金牌数'] < 30) & (df_new['国家奥委会'].isin(['中国','美国','英国','日本','巴西']))]
输出为:
提取 国家奥委会 列中,所有包含 国的行
# 筛选行|条件(包含指定值) # 提取 国家奥委会 列中,所有包含 国的行 df_new[df_new.国家奥委会.str.contains('国',na=False)] # 如果列中有字符串和数字类型需要家na=False
输出为:
** 使用 query 提取 金牌数 大于 金牌均值的国家**
# 筛选值|query(引用变量) # 使用 query 提取 金牌数 大于 金牌均值的国家 gold_mean = df_new['金牌数'].mean() print(gold_mean) df_new.query(f'金牌数 > {gold_mean}')
输出为:
4. 数据筛选-筛选行号+列名
# 提取10-20行,列名为"银铜牌总数"以及之后的数据 df_new.loc[10:20,"银铜牌总数":]
输出为:
2. 总结
本文主要完成了数据的增删改查操作,十分高效,可以点赞关注评论收藏,多谢查看。