《Python数据分析》之数据索引&逻辑运算

164 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第26天


  • DA5 牛客网用户没有补全的信息

image.png

参考代码如下:

import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv',sep=',',dtype=object)
print(Nowcoder.isnull().any(axis=0))

具体解析如下:

  • isnull: 判断是否为空。

       返回bool类型的值:True or False

  • any:返回是否至少一个元素为真

       all:返回是否所有元素为真

       axis=1或0:    1表示横轴(行),方向从左到右;0表示纵轴(列),方向从上到下

isnull()就是isna()函数,判断是否存在缺失值

  • DA6 查看牛客网哪些用户使用Python

image.png

参考代码如下:

import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv',sep=',',dtype=object)
print(Nowcoder[Nowcoder["Language"]=="Python"])

  • DA7 牛客网Python用户的成就值

image.png

参考代码如下:

import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv',sep=',')
print(Nowcoder[Nowcoder["Language"] == "Python"]['Achievement_value'])
  • DA8 文件最后用户的部分数据

image.png

参考代码如下:

import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')
print(Nowcoder.iloc[-5:,[0,1,2,5]])

iloc[行索引,列索引](没有逗号及以后就是默认列为所有列)
其余代码参考:

import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv',sep=',')
print(Nowcoder[['Nowcoder_ID','Level','Achievement_value','Language']].tail(5))

print(Nowcoder.tail(5).iloc[:,[0,1,2,5]])这样写也是可以的




逻辑运算

  • DA9 2020年毕业的人中最喜欢用Java的用户

image.png

参考代码如下:

import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv',sep=',')
pd.set_option('display.width', 300) # 设置字符显示宽度
pd.set_option('display.max_rows', None) # 设置显示最大行
pd.set_option('display.max_columns', None)
print(Nowcoder[(Nowcoder["Language"]=="Java")&(Nowcoder["Graduate_year"]==2020)])

其他借鉴代码: print(Nowcoder.query("Graduate_year==2020 & Language=='Java'"))

  • DA9 牛客网C系用户们的信息

image.png

参考代码如下:

import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv',sep=',')
pd.set_option('display.width', 300) # 设置字符显示宽度
pd.set_option('display.max_rows', None) # 设置显示最大行
pd.set_option('display.max_columns', None)
print(Nowcoder[(Nowcoder["Language"] == "CPP") |(Nowcoder["Language"] == "C")|(Nowcoder["Language"] == "C#")])

其他代码

print(Nowcoder.query("Language == 'CPP'or Language == 'C#'or Language == 'C'"))
print(Nowcoder.query("Language in ['CPP','C','C#']"))

  • DA10 统计牛客网刷题数量500以上的大佬

image.png

参考答案:

import pandas as pd
Nowcoder = pd.read_csv('Nowcoder.csv',sep=',')
print(Nowcoder.query("Num_of_exercise >= 500").iloc[:,[1,2]])

print(Nowcoder.query('Num_of_exercise>=500')[['Level','Achievement_value']])这行代码也是可行的。


  • DA11 按照毕业年份与使用语言筛选牛客网7级用户

image.png

参考代码如下:

import pandas as pd

Nowcoder = pd.read_csv('Nowcoder.csv', sep=',')
#pd.set_option('display.width',300)
pd.set_option('display.width', 300)  # 设置字符显示宽度
pd.set_option("display.max_rows",None) # 设置显示最大行
pd.set_option("display.max_columns",None) 

print(Nowcoder.query("Language == 'CPP' & Level ==7 & Graduate_year!=2018"))