python - 在Python中将值列表拆分为数据框
问题描述
所以我试图在 Python 中将值列表拆分为数据框。
这是我的列表的示例
ini_string1 = "Time=2014-11-07 00:00:00,strangeness=0.0001,p-value=0.19,deviation=0.78,D_Range=low'"
templist = []
for i in range(5):
templist.append({ini_string1})
现在我试图用Time
, Strangeness
, P-Values
, Deviation
,D_Range
作为变量创建一个数据框。
当我只有一个单一的值时,我能够获得一个数据框,但当我有值ini_string
列表时无法获得它。
下面是我尝试使用单值的示例代码ini_string
lst_dict = []
cols = ['Time','Strangeness', 'P-Values', 'Deviation', 'Is_Deviation']
# Initialising string
for i in range(5):
ini_string1 = "Time=2014-11-07 00:00:00,strangeness=0.0001,p-value=0.19,deviation=0.78,D_Range=low'"
tempstr = ini_string1
res = dict(item.split("=") for item in tempstr.split(","))
lst_dict.append({'Time': res['Time'],
'Strangeness': res['strangeness'],
'P-Values': res['p-value'],
'Deviation': res['deviation'],
'Is_Deviation': res['D_Range']})
print(lst_dict)
strdf = pd.DataFrame(lst_dict, columns=cols)
我无法弄清楚值列表的实现
解决方案
下面的代码将完成这项工作。
from collections import defaultdict
import pandas as pd
ini_string1 = "Time=2014-11-07 00:00:00,strangeness=0.0001,p-value=0.19,deviation=0.78,D_Range='low'"
ini_string2 = "Time=2015-12-07 00:00:00,strangeness=0.0005,p-value=0.31,deviation=0.01,D_Range='high'"
ini_strings = [ini_string1, ini_string2]
dd = defaultdict(list)
for ini_str in ini_strings:
for key_val in ini_str.split(','):
k, v = key_val.split('=')
dd[k].append(v)
df = pd.DataFrame(dd)
阅读更多关于defaultdict
- collections.defaultdict 如何工作?
Python 还有其他有趣的数据结构 - https://docs.python.org/2/library/collections.html
推荐阅读
- android - 如何获取 ARC Welder 的内容
- jquery - 如何在无限滚动电子表格中管理四个表
- java - 如何在复杂模型中使用@valid 注解
- react-native - 在获取响应之前,如何在 react-native 中显示加载程序
- php - 解析错误:语法错误,var/www/ 中的文件意外结束
- jmeter - 如何生成 JSON 格式的 HTTP 请求响应数据?
- angular - Angular HTTP 请求中缺少协商令牌
- multithreading - 如果并发线程数为 10 且 SysTick 时间为 10mSec,则 1 个线程执行时间(量子)是多少?
- java - 如何在 RHEL RedHatLinux 机器上验证哪个 openjdk 发行版供应商?
- jquery - 在rails条件中使用js变量