【发布时间】:2019-01-11 08:11:56
【问题描述】:
我有一个名为 data.txt 的文本文件,其中包含如下表格数据:
PERIOD
CHANNELS 1 2 3 4 5
0 1.51 1.61 1.94 2.13 1.95
5 1.76 1.91 2.29 2.54 2.38
6 2.02 2.22 2.64 2.96 2.81
7 2.27 2.52 2.99 3.37 3.24
8 2.53 2.83 3.35 3.79 3.67
9 2.78 3.13 3.70 4.21 4.09
10 3.04 3.44 4.05 4.63 4.53
CHANNELS 列是仪器的通道编号,其他 5 列是该特定通道分别在周期 1、2、3、4 和 5 中可以检测到的最大能量。
我想编写一个 python 代码,它从用户那里获取输入:周期、较低能量和较高能量,然后给出与给定周期的较低能量和较高能量相对应的通道号。
例如:
Enter the period:
>>1
Enter the Lower energy:
>1.0
Enter the Higher energy:
>2.0
#Output
The lower energy channel is 0
The higher energy channel is 6
这是我目前写的:
import numpy as np
import pandas as pd
period = int(input('Enter the period: '))
lower_energy = float(input('Enter the lower energy value: '))
higher_energy = float(input('Enter the higher energy value: '))
row_names = [0, 5, 6, 7, 8, 9, 10]
column_names = [1, 2, 3, 4, 5]
data_list = []
with open('data.txt') as f:
lines = f.readlines()[2:]
for line in lines:
arr = [float(num) for num in line.split()[1:]]
data_list.append(arr)
df = pd.DataFrame(data_list, columns=column_names, index=row_names)
print (df, '\n')
print (df[period])
帮我补充一下。
【问题讨论】:
-
我不确定实际的问题/问题是什么?
-
我想编写一个 python 代码,它从用户那里获取输入:周期、较低能量和较高能量,然后给出与给定周期的较低能量和较高能量相对应的通道号。
-
您选择更高和更低能量通道的标准尚不清楚。例如,如果用户输入
2.0获得更高的能量,那么在1期间2.02.02,返回的更高能量通道不应该是5吗?请澄清。 -
周期列是通道可以检测到的最大能量值。对于 Period = 1,通道 5 最多只能检测到 1.76。而较高的能量值 = 2.0 大于。因此正确的输出应该是通道 6,因为它可以检测到 2.02。
标签: python python-3.x pandas numpy dataframe