python - 我想从 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 |
解决方案
正如@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
推荐阅读
- android - Android 11 - 本机 C++ 库的 System.loadLibrary 需要 60 多秒,在 Android 10 及更低版本上运行速度非常快
- python - ValueError at / 'photo' 属性没有与之关联的文件
- javascript - 如何使用正则表达式验证电话号码
- methods - 空白返回值(两个数字之和)
- c# - Unity LowLevel 触摸屏检测 android
- python - 如何将没有段落编号的列表项与之前的列表项结合起来?(Python)
- javascript - 为什么 forEach 方法在组件返回函数中不起作用?
- fish - 你如何禁用鱼壳的猜测自动完成功能?
- .htaccess - .htaccess AuthType 基本文件匹配除maintenance.html 之外的所有401 和403
- java - Junit测试类无法从测试包中找到一组资源文件,尽管在gradle build中提到了resources.srcDirs