I have a pandas dataframe structured like:
>>> df
Col1 Col.With.Dots Col.With.# Col.With.%
0 text 111 111 111
1 text 222 222 222
2 text 333 333 333
3 text 444 444 444
4 text 555 555 555
当使用
itertuples()
迭代时,带有特殊字符的列会出错:>>> for i in df.itertuples():
... print i
Pandas(Index=0, Col1='text', _2=111, _3=111, _4=111)
Pandas(Index=1, Col1='text', _2=222, _3=222, _4=222)
Pandas(Index=2, Col1='text', _2=333, _3=333, _4=333)
Pandas(Index=3, Col1='text', _2=444, _3=444, _4=444)
Pandas(Index=4, Col1='text', _2=555, _3=555, _4=555)
在输出的打印结果中,"_2","_3","_4"应分别更改为“Col.With.Dots”,“Col.With.#”和“Col.With.%”。
我需要将 dataframe 对象转换为原始字典。 因此,每个Pandas对象都会更改为以下字典:
{'Col1': 'text','Col.With.Dots':111,'Col.With.#':111,'Col.With.%':111}
有没有办法解决这个问题? 我做了一些研究,但找不到答案。
Col.With.Dots
和类似的变量名不是有效的Python标识符。Pandas正在尽力避免使用它们。 - DYZcsv
模块可以正常工作,但当 csv 文件大小变得很大(500mb+)时,它会失败,而 pandas 可以成功加载该文件。 - Chen A.