Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python';s的CSVReader似乎在分期付款_Python_Pandas_Csv_Validation - Fatal编程技术网

Python';s的CSVReader似乎在分期付款

Python';s的CSVReader似乎在分期付款,python,pandas,csv,validation,Python,Pandas,Csv,Validation,有趣的问题是,我正在使用python的CSVreader从UTF-8格式的CSV文件中读取逗号分隔的数据。读卡器在遇到句点时似乎正在截断列名 例如,下面是我的列名示例 time,b12.76org2101.xz,b12.75org2001.xz,b11.72ogg8090.xy 下面是我如何读取这些数据的 def parseCSV(输入数据): 文件\u至\u打开=输入数据 以csv\u文件的形式打开(文件\u至\u打开): csv_reader=csv.reader(csv_文件,分隔符='

有趣的问题是,我正在使用python的CSVreader从UTF-8格式的CSV文件中读取逗号分隔的数据。读卡器在遇到句点时似乎正在截断列名

例如,下面是我的列名示例

time,b12.76org2101.xz,b12.75org2001.xz,b11.72ogg8090.xy
下面是我如何读取这些数据的

def parseCSV(输入数据):
文件\u至\u打开=输入数据
以csv\u文件的形式打开(文件\u至\u打开):
csv_reader=csv.reader(csv_文件,分隔符=',')
headerLine=True
行=[]
对于csv_读取器中的行:
//这里的列操作代码
下面是CSVReader如何解释这些列名

time,76org2101,75org2001,72ogg8090
这里是重要的一点,我共享的代码是程序中第一件涉及CSV文件的东西。在代码完成执行后,我还可以验证CSV文件本身是否没有更改。问题一定在于CSVReader如何解释句点,但我不确定解决方法是什么

这是另一个有趣的发现。稍后在程序中,我使用Pandas从另一个文件的列中读取相同名称的列表

数据的格式如下所示

COLUMN_NAMES
b12.76org2101.xz,
b12.75org2001.xz,
b11.72ogg8090.xy,
其中,列名称是CSV的标题,下面的项目是行

您可以在这里看到我用来读取这些值的代码

data = pandas.read_csv(file_to_open)

Headers = data['COLUMN_NAMES'].tolist()
熊猫就是这样解释这些行的

76org2101
75org2001
72ogg8090
数据完全相同,我们看到的行为也完全相同!带句点的列名将以完全相同的方式截断

怎么了?因为Pandas和CSVReader都有相同的问题,我想这是一个python问题,但我不知道如何解决它。任何想法都很感激


编辑:问题在于我的代码,我读取了错误的文件,这些文件碰巧与我期望的文件具有相同的列名,只是在句点之前或之后没有任何内容。怎么可能

使用
pd.\uuuu version\uuuu
'0.23.0'
python
version
3.6.5
,我得到了预期的结果:

print(pd.read_csv('test.csv'))

       COLUMN_NAMES
0  b12.76org2101.xz
1  b12.75org2001.xz
2  b11.72ogg8090.xy

headers = pd.read_csv('test.csv')['COLUMN_NAMES'].tolist()

print(headers)

['b12.76org2101.xz', 'b12.75org2001.xz', 'b11.72ogg8090.xy']
如果这些值是列,它也可以工作:

pd.DataFrame(columns=headers).to_csv('test1.csv', index=None)

print(pd.read_csv('test1.csv'))

Empty DataFrame
Columns: [b12.76org2101.xz, b12.75org2001.xz, b11.72ogg8090.xy]
Index: []

也许可以尝试更新您的
python

您使用的是什么版本的
pandas
?运行在python 3.6.3上的0.24.2版本如果运行我的第二组代码会发生什么?嗯,似乎运行得很好。所以问题一定在我的代码范围内,开枪