我有一个数据框
df = pd.DataFrame({'≤8': {1: '3687 55.5', 2: '838 66.5', 3: '8905 66.9'},
'9–13': {1: '2234 33.6', 2: '419 33.3', 3: '3362 25.2'},
'14–15': {1: '290 4.4', 2: nan, 3: '473 3.6'},
'16–17': {1: '194 2.9', 2: nan, 3: '252 1.9'},
'18–20': {1: '185 2.8', 2: nan, 3: '184 1.4'},
'≥21': {1: '52 0.8', 2: '0 0.0', 3: '144 1.1'}})
≤8 9–13 14–15 16–17 18–20 ≥21
1 3687 55.5 2234 33.6 290 4.4 194 2.9 185 2.8 52 0.8
2 838 66.5 419 33.3 NaN NaN NaN 0 0.0
3 8905 66.9 3362 25.2 473 3.6 252 1.9 184 1.4 144 1.1
我想把所有的列分成两列,所以有一个int列和一个float列(注意,我不想按类型分开,这些类型只是巧合).我已经将这些列拆分了,但我不知道如何将结果列表分配到新的列中.我还希望尽可能保持pythonic/pandonic,所以我不想单独循环每个列.
rev = gestation_cols.apply(lambda x: pd.Series([i for i in x.str.split(' ')]))
≤8 9–13 14–15 16–17 18–20 ≥21
0 [3687, 55.5] [2234, 33.6] [290, 4.4] [194, 2.9] [185, 2.8] [52, 0.8]
1 [838, 66.5] [419, 33.3] NaN NaN NaN [0, 0.0]
2 [8905, 66.9] [3362, 25.2] [473, 3.6] [252, 1.9] [184, 1.4] [144, 1.1]
3 [1559, 48.6] [1075, 33.5] [209, 6.5] [165, 5.1] [173, 5.4] [26, 0.8]
编辑:为清楚起见,我不想拆分单个列或单独拆分每个列.我知道我可以一个接一个地创建新的专栏,这只是一种糟糕的做法.我想把每一列都分成两列.