首页 > 解决方案 > 我想从 CSV 文件中捕获多个单元格值并写入新列

问题描述

所以,我是 Python 新手。我一直在尝试将我学到的东西应用到现实世界的问题上。我给自己定的任务是这样的。。

我想捕获两个单元格值 '01/01/2018 和 '08/01/2018' 并将它们打印到标题值日期下的新 csv.file 中。我还想创建一个新列,该列显示与原始 csv 文件中该日期关联的值。

任何帮助将不胜感激或指向正确的方向。

原表

Hierarchy   | Dept   | Emp | Alpha | Bravo | Charlie | 01/01/2018 | 08/01/2018|
Hierarchy 1 | Dept 1 | JC  | h     | o     | l       | 0          | 2         |

新表

Hierarchy   |Dept   | Emp | Alpha | Bravo | Charlie    | Date       |Value |
Hierarchy 1 |Dept 1 | JC  | h     | o     | l          | 01/01/2018 | 0    |
Hierarchy 1 |Dept 1 | JC  | h     | o     | l          | 08/01/2018 | 2    |

标签: pythondatabasepandascsv

解决方案


正如@ChristianSloper 在他的评论中提到的那样,pd.melt是为此而设计的。在你的情况下,这是一个单行:

df
     Hierarchy    Dept Emp Alpha Bravo Charlie  01/01/2018  08/01/2018
0  Hierarchy_1  Dept_1  JC     h     o       l           0           2

pd.melt(df, 
        id_vars=df.columns[:-2], 
        value_vars=df.columns[-2:],
        var_name='Date', 
        value_name='Value')
     Hierarchy    Dept Emp Alpha Bravo Charlie        Date  Value
0  Hierarchy_1  Dept_1  JC     h     o       l  01/01/2018      0
1  Hierarchy_1  Dept_1  JC     h     o       l  08/01/2018      2

推荐阅读