如何使用csv文件命名列
我想将列名放入从csv文件调用的数据集。 我的代码完全正常。如何使用csv文件命名列
DF2 = pd.DataFrame(data=DF1,index=SKU,
columns=['USER1','USER2','USER3','USER4','USER5','USER6'])
6列。
我有大约50 +列,我想从命名为USERID的csv文件中读取列名,而该文件存储在本地而不是键入列表。我该怎么做?
下面的代码没有工作
USERID = pd.read_csv("C:\EVALUATE\USERID.csv")
DF2 = pd.DataFrame(data=DF1,index=SKU, columns=USERID)
有什么建议?
请问文件必须以CSV格式 - 您只需pipe the column names from standard input作为由splitting the input lines空格分隔字流,然后chaining them together可以:?
import fileinput
import itertools
USERID = itertools.chain(*(line.split() for line in fileinput.input()))
DF2 = pd.DataFrame(data=DF1,index=SKU, columns=USERID)
然后,因为你有一个文件USERID.txt
看起来像这样:
USER1 USER2
USER3
USER4 USER5
USER6
...您可以输入eg python DF2.py < USERID.txt
或者在POSIX shell或in a Windows shell和list(USERID)
看起来像['USER1','USER2','USER3','USER4','USER5','USER6']
。
唯一的缺点是你不能在列名中加空格,但为了适应这个要求,可以很容易地改变这些代码和数据格式。
最后,如果由于某种原因,你真的不想管,从标准输入数据,就可以直接在Python像这样阅读:
import itertools
with open("C:\EVALUATE\USERID.txt", "r") as USERID_instream:
USERID = itertools.chain(*(line.split() for line in USERID_instream))
DF2 = pd.DataFrame(data=DF1,index=SKU, columns=USERID)
谢谢,所有这3个都是好主意。它工作完美!谢谢! – Anu
如果你真的想感谢我,接受我的答案,因为我目前正在为一些额外的声望点进行拖网;) – errantlinguist
@ errantlinguist。完成,接受了答案 – Anu
什么是打印的'输出( USERID)'? – Francesco
USERID.csv文件的格式是什么?它是在第一行中给出列名的单行文件吗?或者它们分开,每行一个名称。 –