使用pandas将.dat文件转换为csv格式时出现问题,需要将一列拆分为多列

2024-05-06 13:27:13 发布

您现在位置:Python中文网/ 问答频道 /正文

在使用pandas将.dat扩展名文件转换为csv文件时,我面临一个问题。我已经在google colab中编写了以下基本代码:

from google.colab import files
uploaded = files.upload()
KY1801.32m.dat(n/a) - 335449 bytes, last modified: 4/27/2021 - 100% done
Saving KY1801.32m.dat to KY1801.32m (2).dat
dat_file = "KY1801.32m.dat"
with open(dat_file,'r') as file:
  text = file.read()
  print(text)
import pandas as pd
import numpy as np
with open(dat_file,'r') as file:
  df = pd.DataFrame(file)
  print(df.head())
df["sno","year","month","day","hours","minutes","sec","x","y","z","w"]= df[0].str.split(" " , expand 
= True)
df

我的问题仍然是,在使用代码的最后一行之后,我遇到了如下错误:

--------------------------------------------------------------------------- KeyError Traceback (most recent call last) /usr/local/lib/python3.7/dist-packages/pandas/core/generic.py in _set_item(self, key, value) 3575 try: -> 3576
loc = self._info_axis.get_loc(key) 3577 except KeyError:

8帧键错误:('sno'、'year'、'month'、'day'、'hours', ‘分钟’、‘秒’、‘x’、‘y’、‘z’、‘w’)

在处理上述异常期间,发生了另一个异常:

ValueError回溯(最近的 最后一次呼叫)
/usr/local/lib/python3.7/dist-packages/pandas/core/internals/blocks.py 在init(自我、价值、位置、ndim) 129如果自我验证ndim和自我ndim和len(自我管理locs)!=len(自我价值观): 130 raise VALUE ERROR(->;131 f“传递的项数错误{len(self.values)},” 132 f“安置意味着{len(self.mgr_locs)}” (133)

ValueError:传递的项目数错误12,放置意味着1

我想做的是将dat文件中的单个列0拆分为12个组成列,即:sno、year、month、day、hours、minutes、seconds、x、y、z、w列(基于“”分隔)。我该怎么做?我的代码需要做哪些更改

我的.dat文件可以在这里找到:https://drive.google.com/file/d/1SXEB0Dj2PDUYU31RlLYBPG4858Re8M-J/view?usp=sharing


Tags: 文件代码importselfpandasdflenas
1条回答
网友
1楼 · 发布于 2024-05-06 13:27:13

.dat在这里造成混乱,在本例中,它是一个以空格分隔的文件。 所以只要把分隔符放进去就行了“

import pandas as pd
df=pd.read_csv("KY1801.32m.dat",sep= " ")

enter image description here

相关问题 更多 >