【发布时间】:2016-11-09 21:10:11
【问题描述】:
给定以下代码:
import numpy as np
import pandas as pd
arr = np.array([
[1,2,9,1,1,1],
[2,3,3,1,0,1],
[1,4,2,1,2,1],
[2,3,1,1,2,1],
[1,2,3,1,8,1],
[2,2,5,1,1,1],
[1,3,8,7,4,1],
[2,4,7,8,3,3]
])
# 1,2,3,4,5,6 <- Number of the columns.
df = pd.DataFrame(arr)
for _ in df.columns.values:
print {x: list(df[_]).count(x) for x in set(df[_])}
我想从数据框中删除一个值出现频率高于该列的所有其他值的所有列。在这种情况下,我想删除第 4 列和第 6 列(见评论),因为数字 1 比这些列中的所有其他数字一起出现的频率更高(第 4 列中的 6 > 2 和第 6 列中的 7 > 1)。我不想删除第一列 (4 = 4)。我该怎么做?
【问题讨论】:
标签: python pandas dataframe distribution data-cleaning