gpt4 book ai didi

python - 根据给定条件从数据框中过滤特定数据点

转载 作者:太空狗 更新时间:2023-10-30 01:45:28 26 4
gpt4 key购买 nike

我有一个像下面这样的数据框

+----------+-------+-------+-------+-------+-------+
| Date | Loc 1 | Loc 2 | Loc 3 | Loc 4 | Loc 5 |
+----------+-------+-------+-------+-------+-------+
| 1-Jan-19 | 50 | 0 | 40 | 80 | 60 |
| 2-Jan-19 | 60 | 80 | 60 | 80 | 90 |
| 3-Jan-19 | 80 | 20 | 0 | 50 | 30 |
| 4-Jan-19 | 90 | 20 | 10 | 90 | 20 |
| 5-Jan-19 | 80 | 0 | 10 | 10 | 0 |
| 6-Jan-19 | 100 | 90 | 100 | 0 | 10 |
| 7-Jan-19 | 20 | 10 | 30 | 20 | 0 |
+----------+-------+-------+-------+-------+-------+

如果值为零,我想提取所有数据点(行标签和列标签)并生成一个新的数据框。

我想要的输出如下

+--------------+----------------+
| Missing Date | Missing column |
+--------------+----------------+
| 1-Jan-19 | Loc 2 |
| 3-Jan-19 | Loc 3 |
| 5-Jan-19 | Loc 2 |
| 5-Jan-19 | Loc 5 |
| 6-Jan-19 | Loc 4 |
| 7-Jan-19 | Loc 5 |
+--------------+----------------+

注意 5-Jan-19,有两个条目 Loc 2Loc 5

我知道如何在 Excel VBA 中执行此操作。但是,我正在使用 python-pandas 寻找更具可扩展性的解决方案。

到目前为止我已经尝试使用下面的代码

import pandas as pd

df = pd.read_csv('data.csv')

new_df = pd.DataFrame(columns=['Missing Date','Missing Column'])

for c in df.columns:
if c != 'Date':
if df[df[c] == 0]:
new_df.append(df[c].index, c)

我是 Pandas 的新手。因此,指导我如何解决这个问题。

最佳答案

融合 + 查询

(df.melt(id_vars='Date', var_name='Missing column')
.query('value == 0')
.drop(columns='value')
)

        Date Missing column
7 1-Jan-19 Loc 2
11 5-Jan-19 Loc 2
16 3-Jan-19 Loc 3
26 6-Jan-19 Loc 4
32 5-Jan-19 Loc 5
34 7-Jan-19 Loc 5

关于python - 根据给定条件从数据框中过滤特定数据点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57618051/

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