如何使用pandas和获取csvfile值



我有一个csv文件。test.csv

1,1,1,1

我想把它作为变量加载。

我代码:

import pandas as pd
ch_file=pd.read_csv("test.csv")
ch1_value=ch_file.columns[0]
ch2_value=ch_file.columns[1]
ch3_value=ch_file.columns[2]
ch4_value=ch_file.columns[3]
print(ch1_value, ch2_value, ch3_value, 
ch4_value)

输出为1,1.1,1,1.1

为什么不打印1,1,1,1
.1从哪里来?

您想要提取什么?仅仅是数字?

pandas.read_csv将列名重写为唯一的,因此它将为此添加.1,.2等。理论上,您可以传递mangle_dupe_cols=False选项,但目前还不支持。

另一种方法是传递header=None并获取第一行的值:

pd.read_csv('test.csv', header=None).iloc[0]

在你的例子中:

ch1_value, ch2_value, ch3_value, ch4_value = pd.read_csv('test.csv', header=None).iloc[0]

但是,老实说,你真的需要pandas吗?你可以直接在纯python中做:

with open('test.csv') as f:
ch1_value, ch2_value, ch3_value, ch4_value = map(int, f.readline().split(','))

你有两个问题:

  • 当您使用read_csv时,第一行被解释为列标题。如果你没有通过header=None,你必须通过。

  • ch_file.columns[2]返回列名而不是值。请使用.iloc

ch_file = pd.read_csv('test.csv', sep=',', header=None)
ch1_value=ch_file.iloc[0, 0]
ch2_value=ch_file.iloc[0, 1]
ch3_value=ch_file.iloc[0, 2]
ch4_value=ch_file.iloc[0, 3]
print(ch1_value, ch2_value, ch3_value, ch4_value)

输出:

1 1 1 1

相关内容

  • 没有找到相关文章