我了解为什么尝试state
时会出现此错误:
...
const mapDispatchToProps = (dispatch) => ({
onModifyCategoryName: (categoryNewName) => {
dispatch(actions.modifyCategoryName(categoryNewName))
}
})
export default connect(null, mapDispatchToProps)(ModifyCategoryNameModal)
...
当它读取csv时,它在第一行中看到14个字符串/列,基于csv的第一行将其称为标头(这是我想要的)。
但是,这些列在行下进一步扩展(特别是到达第7行时)。
我可以通过跳过第1-6行来找到将其读入的解决方案,但我不希望这样做。我仍然希望读取整个csv,但不是标题为14列,而是如何将标题设为30列,并且如果没有文本/字符串,则将该列保留为“”或null或一些随机编号。换句话说,我不在乎它的名称,我只需要空格即可使其能够在第6行之后进行解析。
我想知道有没有一种方法可以读取csv,并明确地说有30列,但没有找到解决方法。
答案 0 :(得分:1)
我可以抛出一些我认为应该起作用的随机解决方案。
1)设置Header = None并在read_csv的“名称”属性中指定列名称。
df=pd.read_csv(file, header=None, namees = [field1, field2, ...., field 30])
PS。如果您的CSV文件中没有标题,则可以使用此功能。
2)其次,您可以尝试使用以下命令(如果您的csv已包含标题行)
df=pd.read_csv(file, usecols=[0,1,2,...,30])
让我知道这是否对您有用。
谢谢
Rohan Hodarkar
答案 1 :(得分:0)
要尝试的事情,error_bad_lines=False
要引起注意,这将导致违规行被跳过
data = pd.read_csv('File_path', error_bad_lines=False)
只有几个集体答案。.
第一行数据中的分隔符可能会出现问题, 要解决此问题,请在调用read_csv时尝试指定sep和/或header参数。例如,
df = pandas.read_csv('File_path', sep='delimiter', header=None)
在上面的代码中,sep定义了分隔符,并且header = None告诉熊猫您的源数据没有用于标题/列标题的行。因此说:“如果文件不包含标题行,那么您应该显式传递header = None”。在这种情况下,pandas自动为每个字段{0,1,2,...}创建整数索引。
根据文档,定界符应该不是问题。文档说:“如果sep为None [未指定],将尝试自动确定这一点。”但是,我还没有走运,包括带有明显分隔符的实例。
这可能是分隔符的问题,因为大多数csv CSV是使用sep ='/ t'创建的,因此请尝试使用制表符(\ t)和分隔符/ t来读取read_csv。因此,尝试使用以下代码行打开。
data=pd.read_csv("File_path", sep='\t')
OR
pandas.read_csv('File_path',header=None,sep=', ')