我有这样一个数据文件:
ID,ORIG,TIME,TEXT
364,1,7-10-15,This works fine
16254,1,7-10-15,But, I don't work :(
9846,0,7-10-15,Neither, do, I
当我使用pandas导入时,我尝试获得以下内容:
+-------+------+---------+----------------------+
| ID | ORIG | TIME | TEXT |
+=======+======+=========+======================+
| 3464 | 1 | 7-10-15 | This works fine |
+-------+------+---------+----------------------+
| 16254 | 1 | 7-10-15 | But, I don't work :( |
+-------+------+---------+----------------------+
| 9846 | 0 | 7-10-15 | Neither, do, I |
+-------+------+---------+----------------------+
使用我的脚本data_df = pd.read_csv('data.csv', low_memory=False)
,当我导入第一行时,一切正常(没有索引集)。你知道吗
但是对于第二行,因为有一个逗号,所以最初在ID中的数据移动到索引列,所有内容都向左移动1。你知道吗
+-------+----+---------+-----------------+-----------------+
| | ID | ORIG | TIME | TEXT |
+=======+====+=========+=================+=================+
| 3464 | 1 | 7-10-15 | This works fine | NaN |
+-------+----+---------+-----------------+-----------------+
| 16254 | 1 | 7-10-15 | But | I don't work :( |
+-------+----+---------+-----------------+-----------------+
在最后一列中找到的逗号越多,模式就会重复。一种可能的solution方法是重写文件,但我正试图找到一种方法,不必重写每个文件而直接导入它(我有大约65+)。你知道吗
我的问题是:
是否可以将(每行)第一列导入“ID”第二列导入“ORIG”第三列导入“TIME”,其他所有内容导入“TEXT”?你知道吗
这有点难看,但是您可以使用^{} 使用动态数据:
虽然有几种方法可以让它完全工作,但使用
csv
更容易做到这一点,我只想这样做:这有效地在熊猫看到输入数据之前修复了它。这给
您的CSV格式不正确,因为它不使用引号来区分逗号(逗号是分隔符)和逗号(逗号是字段值的一部分)。你知道吗
但是,我们可以遍历CSV的行并使用^{} 在前3个逗号上拆分:
我们可以将这个迭代器直接传递给
pd.DataFrame
:使用
pd.read_csv
的优化解析引擎加载有效CSV的速度不会那么快,但考虑到输入格式不正确,我认为结果相当不错。你知道吗收益率
与
相关问题 更多 >
编程相关推荐