1 1:31080.410200 2:2.871828 3:5.862267 4:7.100850 5:8.283706 6:-5.427875 7:-6.667087 8:-8.888233 9:28898.943400
有人可以告诉我如何将这些数据从 .dat 文件加载到数据框中。给出的数据使得属性编号:值。我只想要数据框中的值
1 1:31080.410200 2:2.871828 3:5.862267 4:7.100850 5:8.283706 6:-5.427875 7:-6.667087 8:-8.888233 9:28898.943400
有人可以告诉我如何将这些数据从 .dat 文件加载到数据框中。给出的数据使得属性编号:值。我只想要数据框中的值
仅给定一行数据,有点难以摆脱,但我假设您正在尝试获取每个冒号之后的数字,而它之前的数字是指列名?
如果是这样,您可以使用 read_csv 稍作调整:
import pandas as pd
from pandas.compat import StringIO
temp='1 1:31080.410200 2:2.871828 3:5.862267 4:7.100850 5:8.283706 6:-5.427875 7:-6.667087 8:-8.888233 9:28898.943400'
#after testing replace StringIO(temp) to filename
df = pd.read_csv(StringIO(temp),
sep="\s+", #separator whitespace
index_col=0,
header=None)
for c in df.columns.values:
df[c] = df[c].apply(lambda x: float(str(x).split(':')[1]))
df.head()
这将输出:
1 2 3 4 5 6 7 8 9
1 31080.4102 2.871828 5.862267 7.10085 8.283706 -5.427875 -6.667087 -8.888233 28898.9434