【发布时间】:2018-08-26 09:28:56
【问题描述】:
我正在学习 Pandas,但在理解数据透视表时遇到了困难。下面是我正在运行的示例程序。
import pandas as pd
df = pd.read_csv('/Users/xxx/Desktop/df.csv')
print(df)
df = df.pivot_table(index='__timestamp', columns=[], values=['passed_count', 'failed_count'])
print(df)
程序在输出下方打印-
__timestamp failed_count passed_count Unnamed: 3
0 27/05/18 0.019417 0.980583
1 03/06/18 0.427136 0.839196
2 10/06/18 0.839416 0.854015
3 17/06/18 0.403846 0.913462
4 24/06/18 1.429688 0.757812
5 01/07/18 6.781457 0.701987
6 08/07/18 0.324561 0.929825
7 15/07/18 0.295082 0.970492
8 22/07/18 0.849802 0.960474
9 29/07/18 0.673333 0.923333
10 05/08/18 0.276657 0.919308
11 12/08/18 0.242105 0.821053
12 19/08/18 0.176471 0.976471
passed_count
__timestamp
01/07/18 0.701987
03/06/18 0.839196
05/08/18 0.919308
08/07/18 0.929825
10/06/18 0.854015
12/08/18 0.821053
15/07/18 0.970492
17/06/18 0.913462
19/08/18 0.976471
22/07/18 0.960474
24/06/18 0.757812
27/05/18 0.980583
29/07/18 0.923333
在执行 pivot_table() 之后,我无法理解第三列的缺失。可以像我上面那样给出多个值吗?提供的价值选项有什么意义?
编辑:
如cmets中所问-
CSV 文件内容为-
__timestamp,failed_count,passed_count,
27/05/18,0.019417 ,0.980583,
03/06/18,0.427136 ,0.839196,
10/06/18,0.839416 ,0.854015,
17/06/18,0.403846 ,0.913462,
24/06/18,1.429688 ,0.757812,
01/07/18,6.781457 ,0.701987,
08/07/18,0.324561 ,0.929825,
15/07/18,0.295082 ,0.970492,
22/07/18,0.849802 ,0.960474,
29/07/18,0.673333 ,0.923333,
05/08/18,0.276657 ,0.919308,
12/08/18,0.242105 ,0.821053,
19/08/18,0.176471 ,0.976471,
df.head()的输出,读取CSV后立即是
__timestamp failed_count passed_count Unnamed: 3
0 27/05/18 0.019417 0.980583
1 03/06/18 0.427136 0.839196
2 10/06/18 0.839416 0.854015
3 17/06/18 0.403846 0.913462
4 24/06/18 1.429688 0.757812
【问题讨论】:
-
pivot_table 应该可以按预期工作。你能提供一个你的 csv 文件的样本吗?
-
信息不足。读取 CSV 数据后,请使用 df.head() 打印头部。不知道你读到了什么数据。我们无法评论您生成的数据透视表。
-
@SeanPeters 编辑了问题。
-
@rocksportrocker 已修复。
-
我怀疑由于某种原因您的第二列被解释为字符串。也许它与每次浮动后的尾随空格有关。相同的代码和 csv 对我来说工作正常,但是 pandas 似乎会默默地忽略值列表中定义的任何字符串列。因此我的怀疑......
标签: python pandas dataframe pivot-table