迭代数据帧

2024-09-29 02:19:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道如何迭代这个pandas数据帧中的每个值,看看它的绝对值是否高于某个定义的阈值,例如:01>;abs(value)。在

  APP ENABLED DEVICES  APPLE/MACINTOSH      CN  APPLECARE  BARGAIN BOOKS
0             0.017685                 0.000123   0.009362       0.039916
1             0.014884                 0.009920   0.004747      -0.000653
2            -0.044820                -0.054319   0.001925      -0.179533
3            -0.014449                 0.193068  -0.006028      -0.026057
4             0.047403                -0.046199  -0.047391       0.060473

我需要最终的输出看起来像这样

^{pr2}$

所以它看起来像是一个字典列表,每一行都是一个单独的小节。只有值高于定义阈值的键值对才应包含在列表中。这是可能的吗?如果是这样的话,有人能告诉我怎么做吗? 抱歉,python对我来说还是比较新的。。。 谢谢你

这只是数据集的一小部分。完整数据帧中的列总数要大得多,因此显式地命名单个列是不可行的。在


Tags: 数据gtappapplepandas列表定义value
2条回答

你可能不想重复,因为熊猫给了你更有效的方式去做大多数事情。第一步是抓取阈值以上的所有行。您可以这样做:

df = df[df["APPLE/MACINTOSH"] > 0.01]

然后,您需要使用to_dict将其转换为字典

下面的示例将为您提供所需的输出,并显示一些操作dataframe的操作,而不必在每个项上循环。在

import pandas as pd
pdf = pd.DataFrame.from_dict({'APP': [0.013, 0.42, -0.23, 0.06],
                              'BOOKS': [-1.3, 0.04, 0.54, 0.01],
                              'CN': [0.012, -0.03, 0.003, 0.5]})
abs_pdf = pdf.abs()
value = 0.01
sel = abs_pdf[abs_pdf > value]

results = list()
by_col = sel.T
for col in by_col:
    results.append(by_col[col].dropna().to_dict())
print(results)

这将产生:

^{pr2}$

如果您想要不同的输出,您应该能够更改代码。在

相关问题 更多 >