如果在熊猫中连续看不到值 SpaceX,如何删除熊猫中的列?
How to delete a column in panda if in a row we can not see a value SpaceX in panda?
我有一个excel文件要分析,但是有很多数据我不想分析,如果我们在第一行找不到值SpaceX字符串,我们可以删除一列吗喜欢关注
SL# State District 10/01/2021 10/01/2021 10/01/2021 11/01/2021 11/01/2021 11/01/2021
SpaceX in Star in StarX out SpaceX out Star out StarX in
1 wb al 10 11 12 13 14 15
2 wb not 23 22 20 24 25 25
现在我想删除行中 SpaceX 不存在的列。然后想要删除 SpaceX 以及向上移动行最终输出将如下所示
SL# State District 10/01/2021 11/01/2021
1 wb al 10 13
2 wb not 23 24
尝试使用 loc 和 iloc 函数,但目前没有任何线索。
也查了答案:但不一样。我正在检查子字符串而不是精确的值匹配。
首先用startswith()
方法和fillna()
方法创建一个布尔掩码:
mask=df.loc[0].str.startswith('SpaceX').fillna(True)
最后使用 Transpose(T)
属性、loc
访问器和 drop()
方法:
df=df.T.loc[mask].T.drop(0)
df
的输出:
SL# State District 2021-01-10 00:00:00 2021-01-11 00:00:00 2021-01-12 00:00:00
1 1.0 wb al 10 13 16
2 2.0 wb not 23 13 16
我有一个excel文件要分析,但是有很多数据我不想分析,如果我们在第一行找不到值SpaceX字符串,我们可以删除一列吗喜欢关注
SL# State District 10/01/2021 10/01/2021 10/01/2021 11/01/2021 11/01/2021 11/01/2021
SpaceX in Star in StarX out SpaceX out Star out StarX in
1 wb al 10 11 12 13 14 15
2 wb not 23 22 20 24 25 25
现在我想删除行中 SpaceX 不存在的列。然后想要删除 SpaceX 以及向上移动行最终输出将如下所示
SL# State District 10/01/2021 11/01/2021
1 wb al 10 13
2 wb not 23 24
尝试使用 loc 和 iloc 函数,但目前没有任何线索。
也查了答案:
首先用startswith()
方法和fillna()
方法创建一个布尔掩码:
mask=df.loc[0].str.startswith('SpaceX').fillna(True)
最后使用 Transpose(T)
属性、loc
访问器和 drop()
方法:
df=df.T.loc[mask].T.drop(0)
df
的输出:
SL# State District 2021-01-10 00:00:00 2021-01-11 00:00:00 2021-01-12 00:00:00
1 1.0 wb al 10 13 16
2 2.0 wb not 23 13 16