Python 使用基于df.columns的foor循环计算不同的数据帧
我有一个带有日期列的熊猫数据框,还有10个带有值的其他列。现在我想有10个数据帧,其中每个数据帧都有日期列和一个其他列 我尝试的是:Python 使用基于df.columns的foor循环计算不同的数据帧,python,pandas,loops,dataframe,Python,Pandas,Loops,Dataframe,我有一个带有日期列的熊猫数据框,还有10个带有值的其他列。现在我想有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'], dty
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
显然,数据帧的计算是正确的,但我不能像我想的那样使用它们。有人知道如何用不同的名称保存这些数据帧吗?最好使用它们包含的列名。您可以这样做
dfs = {col : df[['Datum', col]] for col in df.columns[1:]}
dfs['Alle'].info()
你可以这样做
dfs = {col : df[['Datum', col]] for col in df.columns[1:]}
dfs['Alle'].info()