快速筛选Pandas DataFrame中的奇数行,偶数行,奇数列,偶数列

it2022-05-05  222

快速筛选Pandas DataFrame中的奇数行,偶数行,奇数列,偶数列

筛选奇数行和偶数行当DataFrame的行索引是数字类型的时候当DataFrame的行索引不是数字类型的时候 筛选奇数列,偶数列写作不易,顺手点个赞吧~~~

筛选奇数行和偶数行

在进行数据统计分析中,很多时候我们也需要精简数据,滤除不需要的内容。由于Pandas提供了使用列表提取数据的功能,可以通过使用整除取余的办法即可实现筛选奇数行和偶数行的功能。

当DataFrame的行索引是数字类型的时候

// 保留奇数行,删除偶数行 df=df[df.index%2==0] // 保留偶数行,删除奇数行 df=df[df.index%2==1]

别忘了DataFrame是从0开始的。 类似的,也可以使用整除3取余,整除4取余的方法筛选三分行,四分行。

当DataFrame的行索引不是数字类型的时候

当行索引不是数字类型的时候,df.index不支持整除取余等数学运算。为此,可以生成一个长度为df.index的布尔值列表,实现奇偶数行筛选。

//生成列表实现筛选,保留奇数行,删除偶数行 df=df[[i%2==0 for i in range(len(df.index))]] //保留偶数行,删除奇数行 df=df[[i%2==1 for i in range(len(df.index))]]

类似的,也可以使用整除3取余,整除4取余的方法筛选三分行,四分行。

筛选奇数列,偶数列

使用DataFrame.iloc方法实现列选择,同样是通过生成列表的方式实现筛选。

//保留奇数行,删除偶数行 df=df.iloc[:,[i%2==0 for i in range(len(df.columns))]] //保留偶数行,删除奇数行 df=df.iloc[:,[i%2==1 for i in range(len(df.columns))]]

写作不易,顺手点个赞吧~~~


最新回复(0)