Python 遍历数据帧

Python 遍历数据帧,python,pandas,Python,Pandas,我试图找出如何遍历此数据帧中的每个值,以查看其绝对值是否高于某个定义的阈值,例如:.01>abs(值) 我需要最终的输出像这样 [{APP ENABLED DEVICES:0.017685,BARGAIN BOOKS:0.039916}, {APP ENABLED DEVICES:0.014884}, ...] 所以它看起来像一个字典列表,每一行都是一个单独的小节。列表中只应包括值高于定义阈值的键值对。这是可能的吗?如果是这样的话,有人能告诉我怎么做吗? 对不起,python对我来说还是比

我试图找出如何遍历此数据帧中的每个值,以查看其绝对值是否高于某个定义的阈值,例如:.01>abs(值)

我需要最终的输出像这样

[{APP ENABLED DEVICES:0.017685,BARGAIN BOOKS:0.039916},
 {APP ENABLED DEVICES:0.014884},
 ...]
所以它看起来像一个字典列表,每一行都是一个单独的小节。列表中只应包括值高于定义阈值的键值对。这是可能的吗?如果是这样的话,有人能告诉我怎么做吗? 对不起,python对我来说还是比较新的。。。 多谢各位


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

您可能并不真的想迭代,因为pandas为您提供了更有效的方法来完成大多数事情。第一步是获取阈值以上的所有行。你可以这样做:

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

然后,您需要使用

将其转换为字典,因为pandas为您提供了做大多数事情的更有效的方法,所以您可能并不真正想要迭代。第一步是获取阈值以上的所有行。你可以这样做:

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

然后,您需要使用

将其转换为字典,因为pandas为您提供了做大多数事情的更有效的方法,所以您可能并不真正想要迭代。第一步是获取阈值以上的所有行。你可以这样做:

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

然后,您需要使用

将其转换为字典,因为pandas为您提供了做大多数事情的更有效的方法,所以您可能并不真正想要迭代。第一步是获取阈值以上的所有行。你可以这样做:

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

然后,您需要使用

将其转换为字典。下面的示例将为您提供所需的输出,并显示您可以执行的操作数据帧的一些操作,而不必在每个项目上循环

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)
这将产生:

[{'APP': 0.012999999999999999, 'BOOKS': 1.3, 'CN': 0.012},
 {'APP': 0.41999999999999998,
  'BOOKS': 0.040000000000000001,
  'CN': 0.029999999999999999},
 {'APP': 0.23000000000000001, 'BOOKS': 0.54000000000000004},
 {'APP': 0.059999999999999998, 'CN': 0.5}]

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

下面的示例将为您提供所需的输出,并显示您可以在不循环每个项目的情况下操作数据帧的一些操作

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)
这将产生:

[{'APP': 0.012999999999999999, 'BOOKS': 1.3, 'CN': 0.012},
 {'APP': 0.41999999999999998,
  'BOOKS': 0.040000000000000001,
  'CN': 0.029999999999999999},
 {'APP': 0.23000000000000001, 'BOOKS': 0.54000000000000004},
 {'APP': 0.059999999999999998, 'CN': 0.5}]

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

下面的示例将为您提供所需的输出,并显示您可以在不循环每个项目的情况下操作数据帧的一些操作

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)
这将产生:

[{'APP': 0.012999999999999999, 'BOOKS': 1.3, 'CN': 0.012},
 {'APP': 0.41999999999999998,
  'BOOKS': 0.040000000000000001,
  'CN': 0.029999999999999999},
 {'APP': 0.23000000000000001, 'BOOKS': 0.54000000000000004},
 {'APP': 0.059999999999999998, 'CN': 0.5}]

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

下面的示例将为您提供所需的输出,并显示您可以在不循环每个项目的情况下操作数据帧的一些操作

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)
这将产生:

[{'APP': 0.012999999999999999, 'BOOKS': 1.3, 'CN': 0.012},
 {'APP': 0.41999999999999998,
  'BOOKS': 0.040000000000000001,
  'CN': 0.029999999999999999},
 {'APP': 0.23000000000000001, 'BOOKS': 0.54000000000000004},
 {'APP': 0.059999999999999998, 'CN': 0.5}]

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

这比我想的要好……无可否认,我的目标是不显式定义列名。我发布的数据样本只是更大数据集的一部分。大约有45列。考虑到这一点,还有其他解决方案吗?或者你的解决方案仍然有效吗?是的,我想是的-默认情况下,to_dict使用列名作为字典键,所以这听起来应该正是你需要的,当然比我的with to_dict好,但目标是不显式定义列名。我发布的数据样本只是更大数据集的一部分。大约有45列。考虑到这一点,还有其他解决方案吗?或者你的解决方案仍然有效吗?是的,我想是的-默认情况下,to_dict使用列名作为字典键,所以这听起来应该正是你需要的,当然比我的with to_dict好,但目标是不显式定义列名。我发布的数据样本只是更大数据集的一部分。大约有45列。考虑到这一点,还有其他解决方案吗?或者你的解决方案仍然有效吗?是的,我想是的-默认情况下,to_dict使用列名作为字典键,所以这听起来应该正是你需要的,当然比我的with to_dict好,但目标是不显式定义列名。我发布的数据样本只是更大数据集的一部分。大约有45列。考虑到这一点,还有其他解决方案吗?或者你的解决方案仍然有效吗?是的,我认为是这样-默认情况下,to_dict使用列名作为字典键,所以这听起来应该正是你需要的。这看起来很棒。这正是我想要的。看起来很棒。这正是我想要的。看起来很棒。这正是我想要的。看起来很棒。正是我想要的