【发布时间】:2021-06-04 00:53:52
【问题描述】:
我正在将我的数据框转换为数据透视表。 这是我的数据框。
+----+---------------------+----
| | A| B| C | D |
|----+---------------------+-----
| 0 | a| OK| one | col1 |
| 1 | b| OK| two | col1 |
| 2 | c| OK| two | col2 |
| 3 | d| OK| Four | NaN |
| 4 | e| OK| Five | NaN |
| 5 | f| OK| Six | NaN |
| 6 | g| NaN| NaN | Col3 |
| 7 | h| NaN| NaN | Col4 |
| 8 | i| NaN| NaN | Col5 |
+----+---------------------+-----
我在做-->
pivot_data = df.pivot(index='C', columns = 'D', values = 'B')
这是我的输出。
+------------------+-------+-----------+-------------+-----
| | NaN| Col1| col2 | col3 | col4 | col5 |
|------------------+-------+-----------+-------------+------
| NaN | NaN| NaN| NaN| NaN| NaN| NaN|
| four | OK| NaN| NaN| NaN| NaN| NaN|
| six | OK| NaN| NaN| NaN| NaN| NaN|
| one | NaN| OK| NaN| NaN| NaN| NaN|
| two | NaN| OK| OK| NaN| NaN| NaN|
| five | OK | NaN| NaN| NaN| NaN| NaN|
+------------------+-------+-----------+-------------+------
这是我想要的输出。 当我使用 pivot_table 而不是 pivot 时,我没有得到所有值为 NaN 的行和列。但拥有所有这些行/列很重要。
我怎样才能实现以下所需的输出。
+------------------+-------+-----------+-----------
| | Col1| col2 | col3 | col4 | col5 |
|------------------+-------+-----------+------------
| four | NaN| NaN| NaN| NaN| NaN|
| six | NaN| NaN| NaN| NaN| NaN|
| one | OK| NaN| NaN| NaN| NaN|
| two | OK| OK| NaN| NaN| NaN|
| five | NaN| NaN| NaN| NaN| NaN|
+------------------+-------+-----------+------------
谢谢。
更新:
更新的数据集给出了值错误:索引包含重复条目。无法重塑。
+----+---------------------+-----------+-----------
| | A | B| C| D |
|----+---------------------+-----------+------------
| 0 | 3957 | OK| One | TM-009.4 |
| 1 | 3957 | OK| two | TM-009.4 |
| 2 | 4147 | OK| three| CERT008 |
| 3 | 3816 | OK| four | FITEYE-04 |
| 4 | 3955 | OK| five | TM-009.2 |
| 5 | 4147 | OK| six | CERT008 |
| 6 | 4147 | OK| seven| CERT008 |
| 7 | 3807 | OK| seven| EMT-038.4 |
| 8 | nan | OK| eight| nan |
| 9 | nan | OK| nine | nan |
| 10 | nan | OK| ten | nan |
| 11 | nan | OK| 11 | nan |
| 12 | nan | OK| 12 | nan |
| 13 | nan | OK| 13 | nan |
| 14 | nan | OK| 14 | nan |
| 15 | nan | OK| 14 | nan |
| 16 | 3814 | nan | nan | FITEYE-02 |
| 17 | 3819 | nan | nan | FITEYE-08 |
| 18 | 3884 | nan | nan | TG-000.8 |
| 19 | 4087 | nan | nan | TM-042.1 |
+----+---------------------+-----------+-------------
【问题讨论】:
标签: python-3.x pandas dataframe pivot