热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何使用一个CSV列规范化Python矩阵?

我有一个矩阵,其中“一栏”是CSV,如下所示:-matrix[[1,"123,354,23"],[

我有一个矩阵,其中“一栏”是CSV,如下所示:-

matrix = [
[1,"123,354,23"],[2,"234,34,678"]
]

该如何规范化,因此我在CSV列中为每个值获得一行,即,它看起来像这样:-

[
[1,123],[1,354],23],234],34],678]
]

我愿意使用numpy或pandas。

请注意,在我的特定情况下,还有许多其他非CSV列。

谢谢


在您给出的示例中,将这样做:

matrix = [
[1,"123,354,23"],[2,"234,34,678"]
]
import ast
expanded = [
[ index,item ]
for index,rowString in matrix
for item in ast.literal_eval('[' + rowString + ']')
]

对于其他“非CSV”情况,取决于它们的格式。在这里,ast.literal_eval是将表观标准(逗号分隔的字符串)转换为变量item可以迭代的Python序列的好工具。其他格式可能需要其他转换方法。

这将产生与您指定的列表完全相同的列表。 pandas是一个很好的工具,可以从那里开始使用。然后要将列表转换成pandas.DataFrame,您可以说:

import pandas as pd
df = pd.DataFrame(expanded,columns=['index','item']).set_index(['index'])
print(df)
# prints:
#
# item
# index
# 1 123
# 1 354
# 1 23
# 2 234
# 2 34
# 2 678

或者,如果用“许多其他非CSV列”表示在矩阵的每一行中任意数量的附加条目,但是最后一个仍然始终是CSV文本,那么它看起来可能像这样: >

matrix = [
[1,3.1415927,'Mary Poppins',2.7182818,'Genghis Khan',678"]
]
import ast
expanded = [
row[:-1] + [item]
for row in matrix
for item in ast.literal_eval('[' + row[-1] + ']')
]
import pandas as pd
df = pd.DataFrame(expanded).set_index([0])

,

如果矩阵包含以下形式的对( first text ),则可以编写:

result = [
[first,int(rest)]
for first,text in matrix
for rest in text.split(",")]

或者,没有理解列表:

result = []
for first,text in matrix:
for rest in text.split(","):
result.append([first,int(rest)])

推荐阅读
  • 基于词向量计算文本相似度1.测试数据:链接:https:pan.baidu.coms1fXJjcujAmAwTfsuTg2CbWA提取码:f4vx2.实验代码:imp ... [详细]
  • 本文详细介绍了Python中正则表达式和re模块的使用方法。首先解释了转义符的作用,以及如何在字符串中包含特殊字符。然后介绍了re模块的功能和常用方法。通过学习本文,读者可以掌握正则表达式的基本概念和使用技巧,进一步提高Python编程能力。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文介绍了如何使用python从列表中删除所有的零,并将结果以列表形式输出,同时提供了示例格式。 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • Python基础知识:注释、输出和input交互
    本文介绍了Python基础知识,包括注释的使用、输出函数print的用法以及input函数的交互功能。其中涉及到字符串和整数的类型转换等内容。 ... [详细]
  • 在本教程中,我们将看到如何使用FLASK制作第一个用于机器学习模型的RESTAPI。我们将从创建机器学习模型开始。然后,我们将看到使用Flask创建AP ... [详细]
  • WPF之Binding初探
      初学wpf,经常被Binding搞晕,以下记录写Binding的基础。首先,盗用张图。这图形象的说明了Binding的机理。对于Binding,意思是数据绑定,基本用法是:1、 ... [详细]
  • 获取时间的函数js代码,js获取时区代码
    本文目录一览:1、js获取服务器时间(动态)2 ... [详细]
  • pythonMatplotlib(二)
    Matplotlib+pandas作图一、对csv文件进行提取ruixi.csv对上述表格进行提取并做图画出图像二、对.xlsx进行提取:rui ... [详细]
  • 动量|收益率_基于MT策略的实战分析
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了基于MT策略的实战分析相关的知识,希望对你有一定的参考价值。基于MT策略的实战分析 ... [详细]
  • 做实验需要重命名数据集的名字,有几个容易踩坑的地方和小技巧,总结一下importospathfilelistos.listdir(path)#文件夹路 ... [详细]
  • python3下载mapbox矢量切片通过观察mapbox的页面开发者工具里的network可以发现,打开矢量切片和字体切片pbf和prite图标的链接, ... [详细]
author-avatar
mobiledu2502875315
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有