如何使数据框中的每个组大小相同?
How do I make each group within a dataframe the same size?
我有以下数据框:
Patient
HR
02
PaO2
Hgb
1
62
94
73
31
1
64
93
73
34
1
62
92
73
31
2
64
90
84
42
3
62
95
75
30
3
70
97
77
29
患者的每一行表示每小时观察一次。因此,患者 1 有 3 个观察结果,患者 2 有 1 个观察结果,患者 3 有 2 个观察结果。我正在尝试找到一种方法来填充每个患者组,以便它们与我尝试将此数据用于 LSTM 时具有相同的大小(相同的观察次数)。我不确定最好的方法是什么。我想知道是否有人有任何想法?
输出应该是这样的:
Patient
HR
02
PaO2
Hgb
1
62
94
73
31
1
64
93
73
34
1
62
92
73
31
2
64
90
84
42
2
0
0
0
0
2
0
0
0
0
3
62
95
75
30
3
70
97
77
29
3
0
0
0
0
将您的原始数据重新索引为 pandas.MultiIndex
患者和累积计数:
df = df.set_index(["Patient", df.groupby("Patient").cumcount()])
index = pd.MultiIndex.from_product(df.index.levels, names=df.index.names)
output = df.reindex(index, fill_value=0).reset_index(level=1, drop=True).reset_index()
>>> output
Patient HR 02 PaO2 Hgb
0 1 62 94 73 31
1 1 64 93 73 34
2 1 62 92 73 31
3 2 64 90 84 42
4 2 0 0 0 0
5 2 0 0 0 0
6 3 62 95 75 30
7 3 70 97 77 29
8 3 0 0 0 0
我有以下数据框:
Patient | HR | 02 | PaO2 | Hgb |
---|---|---|---|---|
1 | 62 | 94 | 73 | 31 |
1 | 64 | 93 | 73 | 34 |
1 | 62 | 92 | 73 | 31 |
2 | 64 | 90 | 84 | 42 |
3 | 62 | 95 | 75 | 30 |
3 | 70 | 97 | 77 | 29 |
患者的每一行表示每小时观察一次。因此,患者 1 有 3 个观察结果,患者 2 有 1 个观察结果,患者 3 有 2 个观察结果。我正在尝试找到一种方法来填充每个患者组,以便它们与我尝试将此数据用于 LSTM 时具有相同的大小(相同的观察次数)。我不确定最好的方法是什么。我想知道是否有人有任何想法?
输出应该是这样的:
Patient | HR | 02 | PaO2 | Hgb |
---|---|---|---|---|
1 | 62 | 94 | 73 | 31 |
1 | 64 | 93 | 73 | 34 |
1 | 62 | 92 | 73 | 31 |
2 | 64 | 90 | 84 | 42 |
2 | 0 | 0 | 0 | 0 |
2 | 0 | 0 | 0 | 0 |
3 | 62 | 95 | 75 | 30 |
3 | 70 | 97 | 77 | 29 |
3 | 0 | 0 | 0 | 0 |
将您的原始数据重新索引为 pandas.MultiIndex
患者和累积计数:
df = df.set_index(["Patient", df.groupby("Patient").cumcount()])
index = pd.MultiIndex.from_product(df.index.levels, names=df.index.names)
output = df.reindex(index, fill_value=0).reset_index(level=1, drop=True).reset_index()
>>> output
Patient HR 02 PaO2 Hgb
0 1 62 94 73 31
1 1 64 93 73 34
2 1 62 92 73 31
3 2 64 90 84 42
4 2 0 0 0 0
5 2 0 0 0 0
6 3 62 95 75 30
7 3 70 97 77 29
8 3 0 0 0 0