如何忽略CSV文件中的第一个值?

时间:2017-07-25 11:53:36

标签: python linux pandas csv

我有一个包含以下数据的CSV文件(node.csv):

   0     1     2     3     4
0  12.0  12.5  11.0  10.0  nan
1  15.0  18.0  nan   15.0  17.0
2  20.0  nan   20.0  28.0  27.0

#####This is the output from the following format of data:

sensor_values = {0: {0: 12.0, 1: 15.0, 2: 20.0},
                 1: {0: 12.5, 1: 18.0, 2: np.nan},
                 2: {0: 11.0, 1: np.nan, 2: 20.0},
                 3: {0: 10.0, 1: 150.0, 2: 28.0},
                 4: {0: np.nan, 1: 15.0, 2: 27.0}
                }

当然,上述数据是为了更清晰的画面。文件中的实际数据如下:

,0,1,2,3,4
0,12.0,12.5,11.0,10.0,np.nan
1,15.0,18.0,np.nan,15.0,17.0
2,20.0,np.nan,20.0,28.0,27.0

当我尝试使用Pandas DataFrame打印文件中的数据时,绝对没有问题,因为输出看起来像我上面写的那样。 当我尝试使用以下代码将数据加载到列表中时出现问题:

import pandas as pd

#some other code

sensor_values = pd.read_csv('node.csv')

#or using this instead of read_csv -
#sensor_values = pd.DataFrame.from_csv('node.csv')

sensor_values = sensor_values.values.tolist()

它总是接收CSV数据文件的第一行第一列(“”,.....)中的空白数据,我不想在我的脚本中使用。我只想要获取相关数据,但似乎总是开始从空白值中获取数据 我该如何防止这种情况发生? 我在CSV文件数据本身中是否需要进行任何修改? 在此先感谢您的帮助:)

3 个答案:

答案 0 :(得分:3)

似乎第一列是你的索引。您可以将其用作行标签(索引),如下所示:sensor_values = pd.read_csv('node.csv', index_col=[0])

答案 1 :(得分:0)

虽然可以归功于@jezrael,但您可以在此处找到您要查找的文档:https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html

import pandas as pd
import io

data = """,0,1,2,3,4
0,12.0,12.5,11.0,10.0,np.nan
1,15.0,18.0,np.nan,15.0,17.0
2,20.0,np.nan,20.0,28.0,27.0
"""

df = pd.read_csv(io.StringIO(data),index_col=0)
df.to_dict()

输出

{'0': {0: 12.0, 1: 15.0, 2: 20.0},
 '1': {0: '12.5', 1: '18.0', 2: 'np.nan'},
 '2': {0: '11.0', 1: 'np.nan', 2: '20.0'},
 '3': {0: 10.0, 1: 15.0, 2: 28.0},
 '4': {0: 'np.nan', 1: '17.0', 2: '27.0'}}

答案 2 :(得分:0)

作为其他答案的替代方案,您可以将数据的子集发送到列表,而不是以不同的方式读取它:

df.loc[:,1:].values.tolist() #.loc slices from column 1 to the end here