Pandas对象之间的基本迭代的行为取决于类型。当迭代一个系列时,它被视为数组式,基本迭代产生这些值。其他数据结构,如:DataFramePanel,遵循类似惯例迭代对象的键。 简而言之,基本迭代(对于i在对象中)产生 -

  • Series - 值
  • DataFrame - 列标签
  • Pannel - 项目标签

迭代DataFrame

迭代DataFrame提供列名 要遍历数据帧(DataFrame)中的行,可以使用以下函数 -

  • iteritems() - 迭代(key,value)
  • iterrows() - 将行迭代为(索引,系列)对
  • itertuples() - 以namedtuples的形式迭代行

iteritems() 将每个列作为键,将值与值作为键和列值迭代为Series对象。 iterrows() iterrows()返回迭代器,产生每个索引值以及包含每行数据的序列 itertuples() itertuples()方法将为DataFrame中的每一行返回一个产生一个命名元组的迭代器。元组的第一个元素将是行的相应索引值,而剩余的值是行值。

Pandas 排序

_Pandas_有两种排序方式,它们分别是 -

  • 按标签
  • 按实际值

按标签排序

使用sort_index()方法,通过传递axis参数和排序顺序,可以对DataFrame进行排序。 默认情况下,按照升序对行标签进行排序

排序顺序

通过将布尔值传递给升序参数,可以控制排序顺序。 来看看下面的例子来理解一下。

按列排列

通过传递axis参数值为01,可以对列标签进行排序。 默认情况下,axis = 0,逐行排列。来看看下面的例子来理解这个概念。

按值排序

像索引排序一样,sort_values()是按值排序的方法。它接受一个by参数,它将使用要与其排序值的DataFrame的列名称。

排序算法

sort_values()提供了从mergeesortheapsortquicksort中选择算法的一个配置。Mergesort是唯一稳定的算法。

代码举例:

import pandas as pd
import numpy as np

N = 20

df = pd.DataFrame({
‘A’: pd.date_range(start=‘2016-01-01’, periods=N, freq=‘D’),
‘x’: np.linspace(0, stop=N - 1, num=N),
‘y’: np.random.rand(N),
‘C’: np.random.choice([‘Low’, ‘Medium’, ‘High’], N).tolist(),
‘D’: np.random.normal(100, 10, size=(N)).tolist()
})

for col in df:
print(col)
df = pd.DataFrame(np.random.randn(4, 3), columns=[‘col1’, ‘col2’, ‘col3’])
for key, value in df.iteritems(): # 迭代(key,value)对
print(key, value)
for row_index, row in df.iterrows(): # 将行迭代为(索引,系列)对
print(row_index, row)
for row in df.itertuples(): # 以namedtuples的形式迭代行
print(row)
print(“---------------------------------------------------------”)
unsorted_df = pd.DataFrame(np.random.randn(10, 2), index=[1, 4, 6, 2, 3, 5, 9, 8, 0, 7], columns=[‘col2’, ‘col1’])
sorted_df = unsorted_df.sort_index()
print(sorted_df)
print(unsorted_df.sort_index()) # 按标签排序
print(unsorted_df.sort_index(ascending=False)) # 按标签排序
print(unsorted_df.sort_index(axis=1))
print(unsorted_df.sort_values(by=‘col1’)) # 按值排序
print(unsorted_df.sort_values(by=[‘col1’, ‘col2’]))
print(unsorted_df.sort_values(by=‘col1’, kind=‘mergesort’)) # mergeesort,heapsort和quicksort 其中Mergesort 是唯一稳定的

代码 Github地址:https://github.com/shadowagnoy/python_learn/