有没有办法从连续数据分组到预定义的时间间隔创建条形图?例如,
In[1]: df
Out[1]:
0 0.729630
1 0.699620
2 0.710526
3 0.000000
4 0.831325
5 0.945312
6 0.665428
7 0.871845
8 0.848148
9 0.262500
10 0.694030
11 0.503759
12 0.985437
13 0.576271
14 0.819742
15 0.957627
16 0.814394
17 0.944649
18 0.911111
19 0.113333
20 0.585821
21 0.930131
22 0.347222
23 0.000000
24 0.987805
25 0.950570
26 0.341317
27 0.192771
28 0.320988
29 0.513834
231 0.342541
232 0.866279
233 0.900000
234 0.615385
235 0.880597
236 0.620690
237 0.984375
238 0.171429 …Run Code Online (Sandbox Code Playgroud) 我需要将熊猫数据框转换为 JSONL 格式。我找不到一个好的包来做它并尝试自己实现,但它看起来有点丑陋且效率低下。
例如,给定一个熊猫 df:
label pattern
0 DRUG aspirin
1 DRUG trazodone
2 DRUG citalopram
Run Code Online (Sandbox Code Playgroud)
我需要转换为格式的txt文件:
{"label":"DRUG","pattern":[{"lower":"aspirin"}]}
{"label":"DRUG","pattern":[{"lower":"trazodone"}]}
{"label":"DRUG","pattern":[{"lower":"citalopram"}]}
Run Code Online (Sandbox Code Playgroud)
我尝试过to_dict('records'),但我缺少[ ]并嵌套了“下”键。
df.to_dict('record')
Run Code Online (Sandbox Code Playgroud)
创建:
[{'label': 'DRUG', 'pattern': 'aspirin'},
{'label': 'DRUG', 'pattern': 'trazodone'},
{'label': 'DRUG', 'pattern': 'citalopram'}]
Run Code Online (Sandbox Code Playgroud)
我想过转换“模式”列并包含嵌套的“较低”?
UPD
到目前为止,我成功地将“模式”转换为列表:
df_new = pd.concat((df[['label']], df[['pattern']].apply(lambda x: x.tolist(), axis=1)), axis=1)
df_new.columns = ['label', 'pattern']
df_new.head()
Run Code Online (Sandbox Code Playgroud)
结果:
label pattern
0 DRUG [aspirin]
1 DRUG [trazodone]
2 DRUG [citalopram]
Run Code Online (Sandbox Code Playgroud)
进而:
df_new.to_dict(orient='记录')
[{'label': 'DRUG', 'pattern': ['aspirin']},
{'label': 'DRUG', 'pattern': ['trazodone']},
{'label': 'DRUG', …Run Code Online (Sandbox Code Playgroud) 我想知道在scikit-learn软件包的最新版本中是否有平衡随机森林(BRF)的实现.BRF用于不平衡数据的情况.它可以作为普通RF工作,但是对于每次自举迭代,它通过欠采样来平衡普遍性类.例如,给定两个类N0 = 100,N1 = 30个实例,在每个随机抽样中,它从第一个类中抽取(替换)30个实例,从第二个类抽取相同数量的实例,即它在一个树上训练一个树.平衡数据集.有关更多信息,请参阅本文.
RandomForestClassifier()确实有'class_weight ='参数,可能设置为'balanced',但我不确定它是否与bootrapped训练样本的下采样有关.
我需要在Pandas中选择列中只包含数值的列,例如:
df=
0 1 2 3 4 window_label next_states ids
0 17.0 18.0 16.0 15.0 15.0 ddddd d 13.0
1 18.0 16.0 15.0 15.0 16.0 ddddd d 13.0
2 16.0 15.0 15.0 16.0 15.0 ddddd d 13.0
3 15.0 15.0 16.0 15.0 17.0 ddddd d 13.0
4 15.0 16.0 15.0 17.0 NaN ddddd d 13.0
Run Code Online (Sandbox Code Playgroud)
所以我只需要选择前五列.就像是:
df[df.columns.isnumeric()]
Run Code Online (Sandbox Code Playgroud)
编辑
我提出了解决方案:
digit_column_names = [num for num in list(df.columns) if isinstance(num, (int,float))]
df_new = df[digit_column_names]
Run Code Online (Sandbox Code Playgroud)
不是非常pythonic或pandasian,但它的工作原理.
我需要使用 选择数据框的一半groupby,其中每个组的大小未知并且可能因组而异。例如:
index summary participant_id
0 130599 17.0 13
1 130601 18.0 13
2 130603 16.0 13
3 130605 15.0 13
4 130607 15.0 13
5 130609 16.0 13
6 130611 17.0 13
7 130613 15.0 13
8 130615 17.0 13
9 130617 17.0 13
10 86789 12.0 14
11 86791 8.0 14
12 86793 21.0 14
13 86795 19.0 14
14 86797 20.0 14
15 86799 9.0 14
16 86801 10.0 14
20 107370 1.0 15
21 …Run Code Online (Sandbox Code Playgroud) 有没有办法保持分类变量之后groupby和mean()?例如,给定数据帧df:
ratio Metadata_A Metadata_B treatment
0 54265.937500 B10 1 AB_cmpd_01
11 107364.750000 B10 2 AB_cmpd_01
22 95766.500000 B10 3 AB_cmpd_01
24 64346.250000 B10 4 AB_cmpd_01
25 52726.333333 B10 5 AB_cmpd_01
30 65056.600000 B11 1 UT
41 78409.600000 B11 2 UT
52 133533.000000 B11 3 UT
54 102433.571429 B11 4 UT
55 82217.588235 B11 5 UT
60 89843.600000 B2 1 UT
71 98544.000000 B2 2 UT
82 179330.000000 B2 3 UT
84 107132.400000 B2 4 …Run Code Online (Sandbox Code Playgroud) 嵌套属性由'data'字段给出.简而言之:我有一个参与者列表(由'participant_id'表示),他们在不同时间提交了回复('数据').我需要创建宽数据框,每个时间戳的每个参与者都有一行数据记录('q1','q2',...,'summary')
提前谢谢了!
我需要对存储在熊猫中的五个变量进行比较dataframe。我从这里使用了一个示例,它起作用了,但是现在我需要更改坐标轴和标题,但是我很难做到这一点。
这是我的数据:
df1.groupby('cls').head()
Out[171]:
sensitivity specificity accuracy ppv auc cls
0 0.772091 0.824487 0.802966 0.799290 0.863700 sig
1 0.748931 0.817238 0.776366 0.785910 0.859041 sig
2 0.774016 0.805909 0.801975 0.789840 0.853132 sig
3 0.826670 0.730071 0.795715 0.784150 0.850024 sig
4 0.781112 0.803839 0.824709 0.791530 0.863411 sig
0 0.619048 0.748290 0.694969 0.686138 0.713899 baseline
1 0.642348 0.702076 0.646216 0.674683 0.712632 baseline
2 0.567344 0.765410 0.710650 0.665614 0.682502 baseline
3 0.644046 0.733645 0.754621 0.683485 0.734299 baseline
4 0.710077 0.653871 …Run Code Online (Sandbox Code Playgroud) 我需要计算每行沿 axis=1 的元素之间的差异,忽略缺失值 (NaN)。例如:
0 1 2 3 4 5
20 NaN 7.0 5.0 NaN NaN 8.0
21 7.0 5.0 NaN NaN 8.0 NaN
22 5.0 NaN NaN 8.0 NaN 7.0
23 NaN NaN 8.0 NaN 7.0 NaN
24 NaN 8.0 NaN 7.0 NaN 10.0
25 8.0 NaN 7.0 NaN 10.0 NaN
26 NaN 7.0 NaN 10.0 NaN NaN
27 7.0 NaN 10.0 NaN NaN 9.0
28 NaN 10.0 NaN NaN 9.0 6.0
29 10.0 NaN NaN 9.0 6.0 6.0 …Run Code Online (Sandbox Code Playgroud) 我对CNN的图像识别非常陌生,目前在Keras(VGG和ResNet)中使用了几种标准(预训练)架构来进行图像分类任务.我想知道如何将输入通道的数量概括为3(而不是标准RGB).例如,我有一个通过5个不同(光学)滤镜拍摄的图像,我正在考虑将这5个图像传递到网络.
因此,从概念上讲,我需要传递作为输入(高度,宽度,深度)=(28,28,5),其中28x28是图像大小,5是通道数.
有什么简单的方法可以使用ResNet或VGG吗?
python image-processing conv-neural-network keras tensorflow