我想把“夜间就寝时间”一栏中那些打盹的人分成一个新变量,而那些没有打盹的人分成另一个新变量

2024-05-15 21:12:11 发布

您现在位置:Python中文网/ 问答频道 /正文

nap time in bed变量有一些nan值和一些“整数值”,但night bedtime变量只有整数值。我想根据“床上午睡时间”将“夜间就寝时间”列分为两列,一列用于没有午睡(nan值)的人,另一列用于有午睡(整数值)的人

      night bedtime
0     1245.0
1     1163.0
2     1200.0
3     1186.0
4     1161.0
5     1235.0
6     1260.0
7     1321.0
8     1224.0
9     1278.0
10    1185.0
11    1218.0
12    1222.0
13    1226.0
14    1228.0
15    1246.0
16    1243.0
17    1202.0
18    1190.0
19    1218.0
Name: night bedtime, dtype: float64


0        NaN
1        NaN
2        NaN
3        NaN
4        NaN
5     137.00
6      80.00
7     163.80
8     131.25
9     130.67
10    126.60
11    130.40
12    110.20
13    139.33
14    130.00
15    162.75
16    135.00
17    107.00
18     89.40
19    152.67
Name: nap time in bed, dtype: float64

Tags: nameintime时间整数nanbeddtype
1条回答
网友
1楼 · 发布于 2024-05-15 21:12:11
In [76]: df1 = pd.DataFrame({'night bedtime' : [1186,1161,1235,1260,1321],})
    ...: print(df1)
    ...: df2 = pd.DataFrame({'nap time in bed': [np.nan, np.nan, 137, 163, np.nan],})
    ...: print(df2)
    ...: 
    ...: #Assuming two dataframes same length
    ...: #indentify where no nap time entered
    ...: idx_no_nap = df2.loc[df2['nap time in bed'].isna()].index.tolist()
    ...: 
    ...: #filter night bedtime based on nap or nap
    ...: df_no_nap = df1[df1.index.isin(idx)]
    ...: df_nap = df1[~df1.index.isin(idx)]
    ...: print(df_no_nap)
    ...: print(df_nap)
   night bedtime
0           1186
1           1161
2           1235
3           1260
4           1321
   nap time in bed
0              NaN
1              NaN
2            137.0
3            163.0
4              NaN
   night bedtime
0           1186
1           1161
4           1321
   night bedtime
2           1235
3           1260

相关问题 更多 >