gpt4 book ai didi

python - 将包含数据的行保留在Python的列列表中

转载 作者:太空宇宙 更新时间:2023-11-03 15:57:45 25 4
gpt4 key购买 nike

如何选择包含特定列列表中数据的行并删除这些特定列中根本没有数据的行?

这是我到目前为止的代码:

VC_sub_selection = final[final['VC'].isin(['ACTIVE', 'SILENT']) & final['Status'].isin(['Test'])]

data_usage_months = list(data_usage_res.columns)

这是数据集的示例

item    VC     Status     Jun 2016   Jul 2016
1 Active Test Nan 1.0
2 Silent Test Nan Nan
3 Active Test 2.0 3.0
4 Silent Test 5.0 Nan

我想要实现的是项目 1,3,4 将保留在数据集中,而项目 2 将被删除。因此适用的条件是:如果所有月份都是 Nan 则删除行。

谢谢,

杰罗恩

最佳答案

虽然 Nickil 的解决方案回答了这个问题,但它没有考虑到以后可能会添加更多日期列。因此,在未来的情况下,使用列的索引位置可能不够。

下面提供的解决方案不使用索引,而是使用正则表达式来查找日期列:

import pandas as pd
import re

# item VC Status Jun 2016 Jul 2016
# 1 Active Test Nan 1.0
# 2 Silent Test Nan Nan
# 3 Active Test 2.0 3.0
# 4 Silent Test 5.0 Nan

df = pd.DataFrame({'item': [1,2,3,4],
'VC': ['Active', 'Silent', 'Active', 'Silent'],
'Status': ['Test'] * 4,
'Jun 2016': [None, None, 2.0, 5.0],
'Jul 2016': [1.0, None, 3.0, None]})

regex_pattern = r'[a-zA-Z]{3}\s\d{4}'

date_cols = list(filter(lambda x: re.search(regex_pattern, x), df.columns.tolist()))

df_res = df.dropna(subset=date_cols, how='all')

# Jul 2016 Jun 2016 Status VC item
# 0 1.0 NaN Test Active 1
# 2 3.0 2.0 Test Active 3
# 3 NaN 5.0 Test Silent 4

关于python - 将包含数据的行保留在Python的列列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40615204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com