我有一个熊猫数据框,其中包含日期和一些类似下面的值
原始数据:
list = [('2018-10-29', 6.1925), ('2018-10-29', 6.195), ('2018-10-29', 1.95833333333333), ('2018-10-29', 1.785), ('2018-10-29', 3.05), ('2018-10-29', 1.30666666666667), ('2018-10-29', 1.6325), ('2018-10-30', 1.765), ('2018-10-30', 1.265), ('2018-10-30', 2.1125), ('2018-10-30', 2.16714285714286), ('2018-10-30', 1.485), ('2018-10-30', 1.72), ('2018-10-30', 2.754), ('2018-10-30', 1.79666666666667), ('2018-10-30', 1.27833333333333), ('2018-10-30', 3.48), ('2018-10-30', 6.19), ('2018-10-30', 6.235), ('2018-10-30', 6.11857142857143), ('2018-10-30', 6.088), ('2018-10-30', 4.3), ('2018-10-30', 7.80666666666667), ('2018-10-30', 7.78333333333333), ('2018-10-30', 10.9766666666667), ('2018-10-30', 2.19), ('2018-10-30', 1.88)]
装入大熊猫后
df = pd.DataFrame(list)
0 1
0 2018-10-29 6.192500
1 2018-10-29 6.195000
2 2018-10-29 1.958333
3 2018-10-29 1.785000
4 2018-10-29 3.050000
5 2018-10-29 1.306667
6 2018-10-29 1.632500
7 2018-10-30 1.765000
8 2018-10-30 1.265000
9 2018-10-30 2.112500
10 2018-10-30 2.167143
11 2018-10-30 1.485000
12 2018-10-30 1.720000
13 2018-10-30 2.754000
14 2018-10-30 1.796667
15 2018-10-30 1.278333
16 2018-10-30 3.480000
17 2018-10-30 6.190000
18 2018-10-30 6.235000
19 2018-10-30 6.118571
20 2018-10-30 6.088000
21 2018-10-30 4.300000
22 2018-10-30 7.806667
23 2018-10-30 7.783333
24 2018-10-30 10.976667
25 2018-10-30 2.190000
26 2018-10-30 1.880000
我可以轻松找出某些统计结果,例如均值,方差,中位数等。
df = pd.DataFrame(list)
df.set_index(0, inplace=True)
variance = df.var()
print(variance)
我在下面得到结果
1 6.918711
dtype: float64
类似地,
print(df.mean())
我在下面得到结果
1 3.759699
dtype: float64
现在,我想将这些结果添加到列表中,并对每个结果进行描述
例如,如果我对输出进行字符串连接
print("variance " + df.var().to_string())
我得到的结果是
variance 1 6.918711
如果我尝试将其添加到列表中
lis = []
lis.append("variance " + df.var().to_string())
print(lis)
我得到的列表为
['variance 1 6.918711']
我看到它显示1
作为列名,但我也只希望指标而不是列号
因此它应该是variance 6.918711
并且列表应该看起来像
['variance 6.918711', 'mean 3.759699']
我该怎么做?
答案 0 :(得分:1)
您可以这样做:
In [458]: variance = df.var().iloc[0]
In [459]: variance
Out[459]: 6.918710915931824
In [460]: mean = df.mean().iloc[0]
In [461]: mean
Out[461]: 3.7596992945326284
现在,列名已删除。
In [466]: lis = []
In [468]: lis.append('variance ' +str(variance))
In [469]: lis.append('mean ' +str(mean))
In [470]: lis
Out[470]: ['variance 6.918710915931824', 'mean 3.7596992945326284']
让我知道这是否有帮助。
答案 1 :(得分:1)
您可以选择要保留的值,然后将其转换为字符串并添加。
values = ['count','mean']
df.describe().loc[values].reset_index().astype(str).apply(' '.join,1).tolist()
出局:
['count 27.0', 'mean 3.7596992945326284']