我是Python和Pandas的新手,所以可能有一个我看不到的简单解决方案.
我有一些不连续的数据集,如下所示:
ind A B C
0 0.0 1 3
1 0.5 4 2
2 1.0 6 1
3 3.5 2 0
4 4.0 4 5
5 4.5 3 3
Run Code Online (Sandbox Code Playgroud)
我现在寻找一个解决方案来获得以下内容:
ind A B C
0 0.0 1 3
1 0.5 4 2
2 1.0 6 1
3 1.5 NAN NAN
4 2.0 NAN NAN
5 2.5 NAN NAN
6 3.0 NAN NAN
7 3.5 2 0
8 4.0 4 5
9 4.5 3 3
Run Code Online (Sandbox Code Playgroud)
问题是,A中的差距从数据集到位置和长度的数据集不等......
我有一个包含4列的(example-)数据框:
data = {'A': ['a', 'b', 'c', 'd', 'e', 'f'],
'B': [42, 52, np.nan, np.nan, np.nan, np.nan],
'C': [np.nan, np.nan, 31, 2, np.nan, np.nan],
'D': [np.nan, np.nan, np.nan, np.nan, 62, 70]}
df = pd.DataFrame(data, columns = ['A', 'B', 'C', 'D'])
A B C D
0 a 42.0 NaN NaN
1 b 52.0 NaN NaN
2 c NaN 31.0 NaN
3 d NaN 2.0 NaN
4 e NaN NaN 62.0
5 f NaN NaN 70.0
Run Code Online (Sandbox Code Playgroud)
我现在想将列B,C和D合并/组合到一个新列E,如下例所示:
data2 = {'A': ['a', 'b', …Run Code Online (Sandbox Code Playgroud) 假设我有一个数据框,其“类型”列中包含三组“K”、“L”和“M”,如下所示:
df = pd.DataFrame(data={'A': random.sample(xrange(60, 100), 10),
'B': random.sample(xrange(20, 40), 10),
'C': random.sample(xrange(2000, 3010), 10),
'type': list(3*'K')+list(3*'L')+list(4*'M')})
Run Code Online (Sandbox Code Playgroud)
为了查看单个分组的箱线图,我可以使用:
for i,el in enumerate(list(df.columns.values)[:-1]):
a = df.boxplot(el, by ='type')
Run Code Online (Sandbox Code Playgroud)
我现在想将这些单个图合并为一张图中的子图。
使用df.boxplot(by='type')创建这样的子图。然而,由于“A”、“B”和“C”列中的变量范围,这些子图难以阅读,即信息丢失,尤其是在印刷形式中。
每个子图如何拥有单独的 y 轴?