【发布时间】:2021-08-18 02:46:50
【问题描述】:
我是使用 Python 处理字典和 Pandas 的新手。我有一个 excel 文件,其中包含名为 sensor 和 values 的列,传感器也可以重复,但它们的值可能不同。我将它们转换为字典,将重复的传感器与其值合并。现在,我有一个字典,其中包含传感器及其值作为列表(下面给出示例)。我想从它们的值列表中返回所有具有最低和最高值的键。值也可以重复。
{'Sensor1': [0.427, 0.13, 0.129, 0.124], 'sensor2': [2.376, 2.376, 0.712, 0.618.208, 0.133], 'sensor3': [0.21, 0.139], 'sensor4': [0.237, 0.123], 'sensor5': [0.997, 0.806, 6.78]}
我希望输出是
sensor1 0.124 0.427
sensor2 0.133 2.376
sensor3 0.139 0.21
.
.
.
我尝试过的代码只给了我第一组键值对,即
senor1 0.124 0.427
代码-
df = pd.read_excel("sensor.xlsx")
a=df.set_index('sensor')['values'].to_dict()
b={k: g["values"].to_list() for k,g in df.groupby("sensor")}
for k,v in b.items():
_max, _min = max(v), min(v)
print(k, " ", _min, " ", _max)
我的 excel 文件很大,此代码不适用于该文件。请帮忙,在此先感谢!
【问题讨论】:
-
所以您是说
b.items()只返回一个键值对,还是还有其他问题?你的问题不是很清楚。 -
@MarkRansom 嗨,我稍微编辑了这个问题。是的,b.items() 返回一个键值对。
标签: python excel pandas csv dictionary