从csv中读取没有熊猫标签的列

时间:2018-12-30 17:20:55

标签: python python-3.x pandas csv

我有以下格式的csv文件:

15.55   28.65   2
14.9    27.55   2
14.45   28.35   2
14.15   28.8    2
13.75   28.05   2

我想阅读并将其另存为X,Y,群集。

我尝试了以下操作,但没有任何数据

data = pd.read_csv(filename)

X = column(data, 0)
X = np.asarray(X)
Y = column(data,1)
Y = np.asarray(Y)

2 个答案:

答案 0 :(得分:1)

使用header=None并指定names参数:

from io import StringIO

x = """15.55   28.65   2
14.9    27.55   2
14.45   28.35   2
14.15   28.8    2
13.75   28.05   2"""

# replace StringIO(x) with 'file.csv'
df = pd.read_csv(StringIO(x), delim_whitespace=True,
                 header=None, names=['X', 'Y', 'Clusters'])

print(df)

       X      Y  Clusters
0  15.55  28.65         2
1  14.90  27.55         2
2  14.45  28.35         2
3  14.15  28.80         2
4  13.75  28.05         2

然后根据需要使用df['X']df['Y']df['Clusters']。在大多数情况下,尽管可以执行以下操作,但无需其他 即可转换为列表或数组:

df['X'].tolist()  # convert series to list
df['X'].values    # convert series to NumPy array

答案 1 :(得分:0)

您应该在代码中指定没有标题,然后才能从数据框中获取序列,如果绝对需要该列表,则可以使用tolist()

进行转换。

这里是一个示例

import pandas as pd
df = pd.read_csv('sof.csv', header=None)
X, Y, Clusters = df[0], df[1], df[2]
print(X.tolist())

输出:

[15.55, 14.9, 14.45, 14.15, 13.75]