将列表的数据框转换为可以操作每个列表以进行进一步分析的格式

我有一个从 csv 导入的数据框,其中每个“单元格”是一个值列表,因此 csv 看起来像:

时间,x,y,z
2020-05-01 11:38:20.177314,"['a', 'a', 'a']","['1', '2', '3']", "[8.16, 0.27, 8.16]"
2020-05-01 11:38:20.637325,"['a', 'a', 'a']","['4', '5', '6'] ","[18.16, 10.27, 18.16]"

df 中的每一行都是用于创建 seaborn 热图的 x、y、z 值。我需要对数据进行大量操作,例如获取每行中所有“z”值的总和,并为每行重新创建热图。我什至无法让熊猫将数据识别为列表。相反,它们似乎是字符串对象。我已经尝试过df['zList']=df['z'].tolist(),但仍然无法将数据作为列表处理。

就像是:

sumList=[]
for row in df.itertuples(index=True, name='Pandas'):
    sumList0=0
    zList0=row.zList
    print(zList0)
    for i in zList0:
        sumList0+=float(i)
    print(sumList0)
    sumList.append(sumList0)
    print(sumList)

会因错误而失败

ValueError: 无法将字符串转换为浮点数:'['

但如果我手动创建 df

df = pd.DataFrame([{'x':['a','b','c'], 'y':['1','2','3'], 'zList':[12,34.2,15.1]},
{'x':['a','b','c'], 'y':['4','5','6'], 'zList':[15.0,6.5,11.7]}])

上面的代码将工作

0声

想到的一种方法是使用literal_eval来解决字符串 vs 浮点问题:

from ast import literal_eval

df['z']=df['z'].apply(literal_eval)
df['sum_z']=df['z'].apply(lambda x: sum(x))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

C#从列表框中提取特定部分并对其执行进一步的操作

Shiny如何动态选择导入的数据集的列以进行进一步分析

是否可以在 Elasticseach Painless 脚本中转换 JSON 数据,并对其执行进一步的操作?

如何将将单词和数字存储为str的列表的值转换为int以进行进一步处理

如何将字符串转换为int []并检索数组以进行进一步处理

使用R上的'highfrequency'包转换.csv文件以进行进一步操作

检索列表中的最后一个节点以进行进一步处理

将OctetString数据解压缩为变量以进行进一步处理

如何选择最佳插补数据以在 r 中进行进一步分析

如何构建一个可以将文件发送到以进行进一步操作的 Web 应用程序?

从 CSV 读取特定列并转换为双精度以在 Java 中进行进一步计算

保存FOR循环中的值以进行进一步分析

C#如何将ASCII Ledger-CLI输出转换为UTF-8输入以进行进一步处理

在数据框中,如何仅根据名称选择特定变量以进行进一步计算?

逐行读取文件并将每行的内容存储在列表中以进行进一步处理

如何从ldapsearch结果创建电子邮件地址列表以进行进一步处理?

遍历Pyspark中的数据框以执行进一步的计算

使用通过 DT::renderDataTable 在输出中呈现的数据进行进一步绘图

将文件发送到应用程序以进行进一步处理

将终端命令发送到Gedit进行进一步编辑

我在散点图中发现了意外的行,如何提取行附近的所有数据以进行进一步分析?

Oracle SQL:根据每个分区中的第一行对 PARTITION BY 组进行进一步排序

如何从 firebase 数据库中提取数据并使用该数据执行进一步的操作?

克隆一条记录,然后使用其自动增量ID进行进一步的操作

什么是处理多个异步操作和处理各进行进一步的处理最好的方法?

自定义Newtonsoft JsonConverter,用于数组和集合,以进行进一步操作

node.js请求对象-返回响应主体以进行进一步操作

如何在pyspark中按列对数据帧进行分区以进行进一步处理?

将元素添加到 *args 列表并进一步传递结果