Python:从TXT文件中导入逗号分隔的数据



我用Raspberry Pi Pico构建了一个数据记录器。数据记录仪每六分钟将温度保存在TXT文件中。我目前无法将TXT文件中的数据导入Python。

数据是这样的:1,20.5,2,21.0,3,21.0,4,21.0,5,21.0,6,21.0,7,21.0,...

数据集因此包含两个变量,它们由逗号分隔,一个递增计数器和带有一个小数点的温度。该数据集有大约240个测量值。

到目前为止,我已经尝试了不同的方法来导入数据。我已经将TXT文件转换为CSV文件,并尝试使用pandas导入数据框架:

temp_df = pd.read_csv('temp_data.csv', header=None)

这给了我一个df,包含一个观察值和三位数的变量。我不能导入只有两个变量和大约240个观测值的数据集。

我还尝试导入数据作为列表:

import csv 
file = open("temp_data.csv", "r")
temp_list = list(csv.reader(file, delimiter=","))
file.close()
print(temp_list)

导致错误:"TypeError: 'list' object is not callable".

——比;总而言之,我需要一个直接使用TXT文件并创建df文件的解决方案。我对Python还是很没有经验的,希望您的帮助!提前感谢

这有帮助吗?

import pandas

data = dict()
with open("data.txt") as f:
for line in f.readlines():
splitted = line.split(",")
data = {**data, **dict(zip(splitted[::2], splitted[1::2]))}
as_dataframe = pandas.DataFrame({"counter": data.keys(), "temperature": data.values()})

您应该试试pd.read_fwf。用于读取定宽格式

https://pandas.pydata.org/docs/reference/api/pandas.read_fwf.html

我在这里使用numpy。Numpy是具有良好功能的python列表。它们允许您在.npy文件中保存/检索列表。

import numpy as np
import pandas as pd
data = [1,20.5,2,21.0,3,21.0,4,21.0,5,21.0,6,21.0,7,21.0]
data_numpied = np.array(data,dtype=float)
np.save("numpy_data_storage.npy",data_numpied,allow_pickle = True)
# Restart / exit here
new_data = [42,42,1.0]
old_data = np.load("numpy_data_storage.npy",allow_pickle=True)
new_data2 = np.concatenate((old_data,new_data))
dataframe = pd.DataFrame(new_data2,columns = ["Temperature"])

然而,".npy"文件不是人类可读的

给定输入文件

1,20.5,2,21.0,3,21.0,4,21.0,5,21.0,6,21.0,7,21.0`

以为例,试试:

import pandas as pd
df = pd.read_csv('temp_data.csv', header=None)
temp_df = pd.DataFrame(index=df.iloc[0,0::2].astype(int).values, data=dict(temp=df.iloc[0,1::2].values))
print(temp_df)

结果:

temp
1  20.5
2  21.0
3  21.0
4  21.0
5  21.0
6  21.0
7  21.0

相关内容

  • 没有找到相关文章

最新更新