【问题标题】:Loop within nested dictionary在嵌套字典中循环
【发布时间】:2021-07-16 00:14:56
【问题描述】:
import pandas as pd

df_1 = pd.DataFrame([[1, 2], [3, 4]], columns=list('AB'))

df_2 = pd.DataFrame([[10, 20], [30, 40]], columns=list('CD'))


df_1_columns = ['A', 'B']

df_2_columns = ['C', 'D']


Tables = {"Table_1" : (df_1 , df_1_columns), "Table_2": (df_2 , df_2_columns)}

for Table in Tables:
    df_table = Tables[Table][0][Tables[Table][1][0]]
    print(df_table)

结果,我得到了:

0    1
1    3
Name: A, dtype: int64

0    10
1    30
Name: C, dtype: int64

结果,我想要:

0    1
1    3
Name: A, dtype: int64

0    2
1    4
Name: B, dtype: int64

0    10
1    30
Name: C, dtype: int64

0    20
1    40
Name: D, dtype: int64

【问题讨论】:

    标签: python-3.x pandas loops dictionary


    【解决方案1】:

    您需要一个嵌套的 for 循环。你可以试试:

    >>> for Table in Tables:
    ...    for i in Tables[Table][1]:
    ...        df_table = Tables[Table][0][i]
    ...        print(df_table)
    ... 
    0    1
    1    3
    Name: A, dtype: int64
    0    2
    1    4
    Name: B, dtype: int64
    0    10
    1    30
    Name: C, dtype: int64
    0    20
    1    40
    Name: D, dtype: int64
    

    但是,如果您需要简单地遍历数据框并打印它们的列,您可以尝试:

    >>> for df in [df_1, df_2]:
    ...    for column in df:
    ...        print(df[column])
    ... 
    0    1
    1    3
    Name: A, dtype: int64
    0    2
    1    4
    Name: B, dtype: int64
    0    10
    1    30
    Name: C, dtype: int64
    0    20
    1    40
    Name: D, dtype: int64
    

    【讨论】:

    • 感谢您帮助我:)
    猜你喜欢
    • 2021-05-30
    • 2017-07-22
    • 2022-06-15
    • 1970-01-01
    • 2020-09-13
    • 1970-01-01
    • 1970-01-01
    • 2018-07-13
    相关资源
    最近更新 更多