【发布时间】:2017-10-26 08:46:53
【问题描述】:
我正在尝试设置一种方法来循环遍历 100 个元素的字典,其中每个元素是一个 42,000 行数据帧,并检查该值是否高于阈值
我在确定如何存储行数据以使其不被覆盖时遇到问题。
我做了一个简单的例子来说明我想做的事情:
我有一个三元素字典 (my_dic),其中每个元素都是一个数据框 我想循环浏览每个数据帧的每一行并检查是否有任何列高于阈值。 我一直在尝试使用 .any() 和 .where 但我不知道如何分别捕获每个 df 的数据。
我想最终得到三个单独的新 df,它们在每列中都具有高于阈值的布尔值。
任何帮助都会很棒!
d1 = np.random.rand(3,3)
d2 = np.random.rand(3,3)
d3 = np.random.rand(3,3)
df1 =pd.DataFrame(d1, index=['a', 'b', 'c'])
df2 =pd.DataFrame(d2, index=['a', 'b', 'c'])
df3 =pd.DataFrame(d3, index=['a', 'b', 'c'])
my_dic = {}
my_dic['a'] = df1
my_dic['b'] = df2
my_dic['c'] = df3
threshold = 0.5
我想循环遍历 my_dic 中每个键的每一行,如果值大于阈值,则将其更改为布尔值
for k in my_dic:
print k
data = my_dic[k]
for row in range(len(data)):
print row
np.where(data.iloc[row,:] > threshold)
这是我正在努力解决的问题,我不知道如何保留这些数据,而不会被覆盖
【问题讨论】:
-
请不要在您的帖子中大喊大叫。
-
另外,如果你有一列没有超过阈值的元素,它还会显示吗?
-
对不起,我没有意识到我在大喊大叫。我怎么知道我是否在喊叫?
-
句子旁边的 # 使句子膨胀为标题。
-
是的,如果列中没有高于阈值的元素,我希望它显示为 false 或 0。
标签: python pandas dictionary dataframe