我在Python中使用Tkinter
模块制作GUI。当使用“浏览”按钮打开时,我尝试以方便的格式从制表符分隔文件中获取数据。我现在有以下代码,它将我的数据保存在一个长字符串中(使用data.get()
调用时),包括\t
&{39}和\n
' s。有没有一种方便的方法可以将我的数据立即放入pandas
数据框,而不是过滤掉空行,找到标题,在\t
分隔等等?
from Tkinter import *
import tkFileDialog
def browse_file():
file = tkFileDialog.askopenfile()
path.set(file.name)
if file:
data.set(file.read())
root = Tk()
path = StringVar()
data = StringVar()
Entry(root, textvariable=path, width=50).pack(side=LEFT)
Button(root, text="Browse", command=browse_file).pack(side=LEFT)
root.mainloop()
编辑:
Average readings / Time between readings = 1 / 0.10
Rel Time X1 Y1(Volts)
0.812 0.000000E+0 3.652836E-5
1.130 1.000000E-5 8.870999E-3
1.435 2.000000E-5 1.785118E-2
答案 0 :(得分:0)
如果您的数据如下所示:
data = """
Average readings / Time between readings = 1 / 0.10
Rel_Time\tX1\tY1(Volts)
0.812\t0.000000E+0\t3.652836E-5
1.130\t1.000000E-5\t8.870999E-3
1.435\t2.000000E-5\t1.785118E-2
"""
然后你可以这样做:
import pandas as pd
import numpy as np
import numpy.ma as ma
import io
data = """
Average readings / Time between readings = 1 / 0.10
Rel_Time\tX1\tY1(Volts)
0.812\t0.000000E+0\t3.652836E-5
1.130\t1.000000E-5\t8.870999E-3
1.435\t2.000000E-5\t1.785118E-2
"""
df = pd.read_table(
io.StringIO(data),
header = 1,
index_col = 0,
dtype = np.float64
)
print(df)
--output:--
X1 Y1(Volts)
Rel_Time
0.812 0.00000 0.000037
1.130 0.00001 0.008871
1.435 0.00002 0.01785
如果这是您想要的那种,那么您需要弄清楚如何将您的实际数据转换为该格式。