首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python-如何将.txt文件(两列)转换为字典元素?

Python-如何将.txt文件(两列)转换为字典元素?
EN

Stack Overflow用户
提问于 2018-12-28 16:42:39
回答 1查看 960关注 0票数 2

我想从.txt文件的两列中检查x和y的min和max,但我不知道如何检查。

嗨,伙计们:)我做了一个频谱分析,得到了超过500行的频率和相应的dB。我想在jupyter笔记本中创建一本字典,这样我就可以检查x和y的最大值和最小值,以及几个光谱分析中的变化。我使用了这个代码:

代码语言:javascript
复制
y = {} 

with open('wow.txt', "r") as infile: 
    for line in infile: 
        key, value = line.strip().split(':') 
        y[key] = (value) 
print(y) 

而且还

代码语言:javascript
复制
d = {}
with open('wow.txt') as f:
    for line in f:
        key, value = line.strip().split(':')
        d[key] = int(value)

但是有一个

ValueError :没有足够的值来解压(预期的2,got 1)。

我从程序中得到了这个值,有两列,所以我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2018-12-28 16:48:24

在文本文件的某个地方,没有“:”字符,因此不能分割行。可能是什么地方的空话?

此外,对于这类事情,我喜欢使用熊猫,它是一个具有相当有趣的函数的库。

代码语言:javascript
复制
import pandas as pd
df = pd.read_csv(file, delimiter=':', names=['freq', 'db'])
min = df.loc[df['db'].idxmin()]
max = df.loc[df['db'].idxmax()]
print('Minimum at {}Hz with a magnitude of {}dB'.format(min['freq'], min['db']))
print('Maximum at {}Hz with a magnitude of {}dB'.format(max['freq'], max['db']))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53961659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档