【发布时间】:2019-08-23 08:34:08
【问题描述】:
我有一个如下所示的数据框
+----------+-------+-------+-------+-------+-------+
| 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 2 & Loc 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)
我是熊猫新手。因此,请指导我如何解决此问题。
【问题讨论】:
-
你的尝试是什么?
-
用我的代码更新了。