我真的不知道如何给出一个好的描述性标题,但这是我的问题。让我们考虑一个 DataFrame df:
col_name
0 Category1
1 item1()
2 item2()
3 Category2
4 item3()
5 item4()
6 item5()
Run Code Online (Sandbox Code Playgroud)
我需要得到这个:
categories items
0 Category1 item1
1 Category1 item2
2 Category2 item3
3 Category2 item4
4 Category2 item5
Run Code Online (Sandbox Code Playgroud)
但categories可能是大陆,items也可能是国家。我知道所有的项目()里面都有一个表达式,所以我可以很容易地提供一个布尔掩码,然后创建一个列表categories:
msk = df[~df['col_name'].str.contains('[^A-Za-z\s]')]['col_name'].tolist()
但是现在,现在我被困住了。你能给我一些建议吗?
我有一个data包含 9 个预测变量和一个ind值为 0 到 3 的指示变量的数据框。我需要为给定值为 的所有变量制作直方图ind。我已经写了一些代码;没有更好的主意,我只是将数据集分为 4 个不相交的子集。
data_no0 <- data[data$ind == 0, -1]
data_no1 <- data[data$ind == 1, -1]
data_no2 <- data[data$ind == 2, -1]
data_no3 <- data[data$ind == 3, -1]
ggplot(gather(data_no1), aes(value)) +
geom_histogram(bins = 6) +
facet_wrap(~key, scales = 'free_x')
Run Code Online (Sandbox Code Playgroud)
更重要的是,我希望能够比较不同值的直方图ind,因此我想分别将 x 的最小值和最大值固定为(即第一个变量)min(data$avg_f0env_sma0)和max(data$avg_f0env_sma)。
我尝试这样做:
scales_x <- list(
'avg_jitterlocal_sma'
= scale_y_continuous(limits = c(min(data$avg_jitterlocal_sma), max(data$avg_jitterlocal_sma))),
'avg_jitterddp_sma'
= scale_y_continuous(limits = c(min(data$avg_jitterddp_sma), max(data$avg_jitterddp_sma))),
'avg_shimmerlocal_sma'
= scale_y_continuous(limits …Run Code Online (Sandbox Code Playgroud)