如果在一行中无法在panda中看到值SpaceX,如何删除panda中的列?

2024-05-23 13:37:21 发布

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

我有一个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

现在我想删除行中空格x不在的列。然后想要删除SpaceX,并向上移动行,最终输出如下所示

SL#   State   District  10/01/2021    11/01/2021
1      wb      al        10            13      
2      wb      not       23            24

尝试使用loc和iloc功能,但目前没有任何线索

还检查了答案:Drop columns if rows contain a specific value in Pandas但它是不同的。我正在检查子字符串,而不是精确的值匹配


Tags: 文件数据字符串innotoutexcelstar
1条回答
网友
1楼 · 发布于 2024-05-23 13:37:21

首先使用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

相关问题 更多 >