【问题标题】:Compute different dataframes using a foor loop based on df.columns使用基于 df.columns 的 for 循环计算不同的数据帧
【发布时间】:2020-10-19 16:20:09
【问题描述】:

我有一个带有日期列和其他 10 个带有值的列的 pandas 数据框。现在我想要 10 个数据框,其中每个数据框都有日期列和其他列之一。

我尝试的是这样的:

for i in df.columns:
    i = df[["Datum", i]]
    print(i)

df.columns 如下所示:

In [29]: df.columns
Out[29]: Index(['Datum', 'Alle', 'B', 'E', 'F', 'G', 'M', 'P', 'V', 'X'], dtype='object')

我得到的结果是这样的,是我想要的:

        Datum      Datum
0  2019-01-31 2019-01-31
1  2019-02-28 2019-02-28
2  2019-03-28 2019-03-28
3  2019-04-30 2019-04-30
4  2019-05-29 2019-05-29
5  2019-06-28 2019-06-28
6  2019-07-31 2019-07-31
7  2019-08-30 2019-08-30
8  2019-09-30 2019-09-30
9  2019-10-31 2019-10-31
10 2019-11-29 2019-11-29
11 2019-12-31 2019-12-31
        Datum       Alle
0  2019-01-31   3.667723
1  2019-02-28   8.701268
2  2019-03-28  14.552034
3  2019-04-30  19.510565
4  2019-05-29  25.989171
5  2019-06-28  34.508452
6  2019-07-31  39.776545
7  2019-08-30  46.492076
8  2019-09-30  52.749604
9  2019-10-31  59.086107
10 2019-11-29  70.755943
11 2019-12-31  96.143687
        Datum          B
0  2019-01-31   2.655556
1  2019-02-28   6.244444
2  2019-03-28  12.033333
3  2019-04-30  16.133333
4  2019-05-29  19.577778
5  2019-06-28  24.666667
6  2019-07-31  28.455556
7  2019-08-30  31.077778
8  2019-09-30  36.433333
9  2019-10-31  40.088889
10 2019-11-29  47.055556
11 2019-12-31  98.888889

(.....所有列的输出都继续)

但是,如果我想查看其中一个数据框或在控制台中输入:

Alle.info()

我收到以下错误:

NameError: name 'Alle' is not defined

显然数据框计算正确,但我不能像我想的那样使用它们。有人知道如何用不同的名称保存这些数据框吗?最好使用它们包含的列名。

【问题讨论】:

    标签: python pandas loops dataframe


    【解决方案1】:

    你可以这样做。

    dfs = {col : df[['Datum', col]] for col in df.columns[1:]}
    
    dfs['Alle'].info()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-05
      • 2022-06-24
      • 1970-01-01
      • 1970-01-01
      • 2019-07-29
      • 2017-10-04
      • 2019-09-30
      • 2016-08-08
      相关资源
      最近更新 更多