首页 > 编程语言 >Python数据分析易错知识点归纳(五):横向对比

Python数据分析易错知识点归纳(五):横向对比

时间:2022-09-05 11:13:24浏览次数:79  
标签:sort 知识点 易错 index Python df pd print 排序

五、横向对比

排序

# 列表
a.sort()   # 修改原列表,返回值为None!!!!!这里很容易出错
sorted(a)  # 生成新的列表

# 嵌套列表的排序(若是对字典排序,需先用list()转成列表形式)
li = [['A', 90], ['B', 20], ['C', 50]]
# 利用sorted()函数中的key属性重新建立排序规则
li = sorted(li, key=lambda x: x[1], reverse=True)

# numpy
#numpy.sort()函数返回输入数组的排序副本
#numpy.sort(a, axis, kind, order)
#axis: 沿着它排序数组的轴,如果没有数组会被展开,沿着最后的轴排序, axis=0 按列排序,axis=1 按行排序
#kind: 默认为'quicksort'(快速排序)
#order: 如果数组包含字段,则是要排序的字段
a = np.array([[3, 7], [9, 1]])
print('原数组:')
print(a)
print('调用sort() 函数:')
print(np.sort(a))
print('按列排序:')
print(np.sort(a, axis=0))

# Series
se.sort_values(ascending=False, inplace=True) #注意Series排序没有by参数

# dataframe
# 根据值排序
df.sort_values(by='A')  
df.sort_values(by='A', ascending=False)  # 逆序,默认升序  
df.sort_values(by='A', inplace=True)  # 改变原df
df.sort_values(by=['A', 'B'])
# 根据index排序
df.sort_index(ascending=False)  # 用法与上面基本一致,只是没有by

逆序排序参数

列表:reverse=True

numpy、pandas: ascending=False

字典遍历和dataframe遍历的区别

# 字典遍历
for eachItem in dict1.items():
	print(eachItem)

# Series遍历
for index, value in se.iteritems():
    print(index) # 索引名
    print(value) # 值
    
# dataframe遍历(分按行遍历和按列遍历)
# 按行遍历
for index, row in df.iterrows():
    print(index) # 行名
    print(row) # 每一行,为Series
# 按列遍历
for index,column in df.iteritems():
	print(index) # 列名
    print(column) # 每一列,为Series
 

列表和集合删除元素

remove pop del discard
列表 返回None;若不存在会报错 返回删除元素;参数默认为0,表示元素下标,超出会报错 例:del member[1]
集合 同上 同上 返回None; 若不存在不会报错

numpy删除元素

np.delete(a, index, [axis=?])

a = np.arange(12).reshape(3, 4)
print('第一个数组:')
print(a)
print('未传递Axis参数。在插入之前输入数组会被展开。')
print(np.delete(a, 5))   # 5是展开之后的索引
print('删除第二列:')
print(np.delete(a, 1, axis=1))  # 1是列索引

'''
第一个数组:
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
未传递Axis参数。在插入之前输入数组会被展开。
[ 0  1  2  3  4  6  7  8  9 10 11]
删除第二列:
[[ 0  2  3]
 [ 4  6  7]
 [ 8 10 11]]
'''

pandas删除行、列

df.drop

  • 删除行
# 通过行名称删除:
df = df.drop(['1', '2'])      # 不指定axis默认为0
df.drop(['1', '3'], inplace=True)  # 注意若多行有相同行名,都删除

# 通过行号删除
df.drop(df.index[0], inplace=True)    # 删除第1行
df.drop(df.index[0:3], inplace=True)   # 删除前3行
df.drop(df.index[[0, 2]], inplace=True) # 删除第1第3行

# 通过过滤条件进行切片(实际应用时一般用)
chooses = df['B'].drop_duplicates().index
df.loc[chooses]
  • 删除列
del df['A'] # 删除A列,会就地修改

df = df.drop(['B', 'C'], axis=1)        # drop不会就地修改,创建副本返回

df.drop(['B', 'C'], axis=1, inplace=True)   # inplace=True会就地修改

过滤空值

  • numpy 用np.isnan

    a = np.array([np.nan, 1, 2, np.nan, 3, 4, 5])
    # ~取补运算符过滤NaN
    print('非空过滤数组:')
    print(a[~np.isnan(a)])
    
  • pandas

    df = df[df['one'].isnull()]
    df = df[df['one'].notnull()]
    
    df = df.dropna()  # 删除全部是空值的行
    df = df.dropna(subset=['one'])  # 删除某一列是空值的行
    

pd开头的方法

  • pd.DataFrame / pd.Series
  • pd.set_option
  • pd.read_csv / pd.read_excel
  • pd.concat
  • pd.merge
  • pd.qcut
  • pd.get_dummies
  • pd.pivot_table
  • pd.crosstab

prefix/suffixes

  • prefix 在pd.get_dummies中使用
  • suffixes 在pd.merge中使用

标签:sort,知识点,易错,index,Python,df,pd,print,排序
From: https://www.cnblogs.com/steven0325/p/16657381.html

相关文章

  • Python数据分析易错知识点归纳(三):Pandas
    三、pandas不带括号的基本属性df.indexdf.columns 注意可以直接赋值,如:df.columns=['A','B','C']df.valuesdf.shape返回元组df.size总个数df.dtypes#......
  • Python数据分析易错知识点归纳(四):Matplotlib
    四、matplotlib显示中文标签plt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文标签不显示坐标轴刻度plt.xticks(())plt.yticks(())双Y图'''次坐标......
  • 如何使用 Python 翻译 YouTube 上的视频
    如何使用Python翻译YouTube上的视频Photoby诺德伍德主题on不飞溅大家好,今天我们将构建一个有趣的应用程序Python将音频语言从YouTube进入另一个语.这......
  • Python 简介 #2。课
    Python简介—第2课print("大家好!")大家好!我们已经离开了数据科学训练营的第二周。在本课中,我们快速介绍了数据科学项目中经常使用的Python语言。我将尝试为您......
  • 5 个 Python 有用的 One-Liners,初学者也能看懂
    5个Python有用的One-Liners,初学者也能看懂图片from像素现在我正在学习很多关于编程的知识(使用JavaScript和Python),并且我正在解决网站编码练习中的许多挑战。......
  • python 下载url函数
    importrequestsimportshutildefdownload_file(url,local_filename):""":paramurl:url连接:paramlocal_filename:下载后保存文件名字"""......
  • Spring(五)-Spring的其他知识点
    1、细说ServletContext、WebApplicationContext、Servlet的初始化参考博客-->细说ServletContext、WebApplicationContext、Servlet的初始化......
  • Javaweb10-javaweb其他知识点
    1、详解DefaultServlet与JspServlet参考博客-->详解DefaultServlet与JspServlet1.1DefaultServlet小结当服务端收到关于Servlet的请求之后交由自定义Servlet处理。当......
  • 关于如何在 MecSimCalc 上使用 if、elif、else 语句的 Python 教程
    关于如何在MecSimCalc上使用if、elif、else语句的Python教程本教程概述了如何在线使用if、elif、else语句MecSimCalc.这是通过一个示例应用程序完成的,该应用程......
  • 零基础学习Python字典操作
    零基础学习Python字典操作在Python中,字典是一种可以将相关的两个信息关联起来的操作,并且字典可存储的信息量几乎不受限制,下面一起来跟小编学习一下如何访问和使用字典中......