如何在带有数据帧的字典中使用if / else?

时间:2019-10-19 16:19:50

标签: python dataframe dictionary if-statement

我有一个包含1000个数据帧的字典,但为简化起见,现在假设3个数据帧。

d = {'key1': DataFrame, 'key2': DataFrame, 'key3': DataFrame}

所有数据框具有相同的变量:距离,国家/地区,价格。我想确定哪个键包含距离变量为字符串的数据框。也许通过创建一个新字典,其字典中的键指示变量距离是否为字符串。

我尝试使用以下代码,但无法正常工作。

comprobar = {"str_in_values_of_{}".format(k) if v[v.dtypes['Hour']==np.str] in v else ".".format(k): v for k, v in d.items()}

有人可以告诉我为什么不工作吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

如果您只想做

  

标识哪个键包含距离变量的数据框   是一个字符串

并假设'Distance'是您数据框的列名,然后如何做:

[k for k, v in d.items() if any(type(e)==str for e in v['Distance'])]

这具有检查“距离”(Distance)列中的每个单个条目以查看是否为字符串的附加好处;而不是对照v.dtypes进行检查,后者的组成可能不同,因此只为您提供object类型。