我正在对几个大型数据集(总和比我的RAM大得多)运行分析。为了方便我的工作,我使用numpy.memmap
加载数据集(在将它们保存到从断层扫描数据集生成的单个.npy文件之后)。
从数据集中提取了几个值之后,我将这些值收集到一个Pandas数据帧中。当我查看这些值时(例如通过df.head()
),它们会很好地显示出来。
我现在想用类似于seaborn.boxplot(data=df, x='Treatment', y='Tumor_Vol', hue='Experiment_Day')
的东西来可视化这些值,但我得到的错误是
ValueError: List of boxplot statistics and `positions` values must have same the length
在我看来,这是由于内存映射值造成的,因为当我将数据帧保存到CSV文件并从磁盘加载回它时,完全相同的命令也能起作用(这是我目前的解决方法)。
所以-如果没有更好的词-有没有一种方法可以取消记忆映射值,并将它们作为“真实”值保存到数据帧中?
发布于 2017-12-08 04:19:40
我遇到了同样一种非常奇怪的bug。不过,这只会出现在jupyter笔记本上。
我有一个简单的数据帧,它可以用swarmplot绘制,但不能用boxplot (在笔记本上,但相同的代码在终端上工作)。这非常奇怪,因为使用相同的代码可以很好地绘制其他一些数据帧。
我的数据帧:
sample color right-left (right-left)/right
0 OPAR19_r1c3 Blue 1 0.000334448
1 OPAR19_r1c3 Green 305 0.255444
2 OPAR19_r1c3 Red 15 0.0205479
3 OPAR19_r2c6 Blue 82 0.028063
4 OPAR19_r2c6 Green 260 0.216847
5 OPAR19_r2c6 Red 14 0.0183246
6 OPAR19_r1c1 Blue 75 0.0251931
7 OPAR19_r1c1 Green -13 -0.0143488
8 OPAR19_r1c1 Red 10 0.0137741
9 OPAR19_r1c4 Blue -38 -0.0131579
10 OPAR19_r1c4 Green 117 0.110169
11 OPAR19_r1c4 Red 0 0
12 OPAR19_r1c6 Blue 7 0.00239153
13 OPAR19_r1c6 Green -3 -0.00295858
14 OPAR19_r1c6 Red -46 -0.0640669
15 OPAR19_r2c4 Blue 95 0.0315824
16 OPAR19_r2c4 Green 191 0.163668
17 OPAR19_r2c4 Red 36 0.0447761
18 OPAR19_r2c5 Blue 48 0.0164215
19 OPAR19_r2c5 Green 165 0.154639
20 OPAR19_r2c5 Red -4 -0.00542005
21 OPAR19_r1c5 Blue 199 0.0655468
22 OPAR19_r1c5 Green 262 0.223169
23 OPAR19_r1c5 Red 103 0.141678
24 OPAR19_r1c2 Blue 102 0.0340681
25 OPAR19_r1c2 Green 198 0.179837
26 OPAR19_r1c2 Red 75 0.0955414
27 OPAR19_r2c1 Blue 221 0.0742857
28 OPAR19_r2c1 Green 99 0.108791
29 OPAR19_r2c1 Red 11 0.0147453
30 OPAR19_r2c2 Blue 159 0.0526664
31 OPAR19_r2c2 Green 64 0.0724802
32 OPAR19_r2c2 Red -21 -0.0276316
33 OPAR19_r2c3 Blue 16 0.00536733
34 OPAR19_r2c3 Green 84 0.0769936
35 OPAR19_r2c3 Red -49 -0.0639687
此绘图在笔记本上失败,但在python文件上不会。
sns.boxplot(data=df_out2,x='color',y='right-left')
下面是错误:
ValueError: List of boxplot statistics and `positions` values must have same the length
而使用swarmplot或stripplot的等效绘图可以很好地工作:
sns.swarmplot(data=df_out2,x='color',y='right-left')
https://stackoverflow.com/questions/42437711
复制相似问题