通过迭代创建字典的Pythonic方法

2024-09-28 05:26:50 发布

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

我试着写一些东西来回答“每列中可能的值是多少?”你知道吗

我创建了一个名为all_col_vals的字典,并从1迭代到我的dataframe有多少列。然而,当在网上读到这篇文章时,有人说这看起来太像Java了,更像是使用zip。我不知道我怎么能在这里用拉链。你知道吗

all_col_vals = {}
for index in range(RCSRdf.shape[1]):
    all_col_vals[RCSRdf.iloc[:,index].name] = set(RCSRdf.iloc[:,index])

输出看起来像'CFN Network': {nan, 'N521', 'N536', 'N401', 'N612', 'N204'}, 'Exam': {'EXRC', 'MXRN', 'HXRT', 'MXRC'},并显示该特定列的所有可能值。键是列名。你知道吗


Tags: indataframeforindex字典rangecoljava
1条回答
网友
1楼 · 发布于 2024-09-28 05:26:50

我认为@piRSquared的评论是最好的选择,所以我将把它作为一个答案,并添加一些解释。你知道吗

回答

假设没有重复的列,请使用以下命令:

{k : {*df[k]} for k in df}

解释

k表示df中的列名。您不必使用.columns属性来访问它们,因为pandas.DataFrame的工作方式类似于pythondict

df[k]表示序列k

{*df[k]}将序列中的值解压并将它们放置在一个集合({})中,该集合根据定义只保留不同的元素(see definition of a set)。你知道吗

最后,使用列表理解来创建dict比定义一个空的dict并通过for-loop向它添加新的键要快。你知道吗

相关问题 更多 >

    热门问题