如何使用 csv 文件命名列
How to name columns using a csv file
我想将列名放入从 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 as a stream of whitespace-separated words by splitting the input lines and then 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
...您可以输入例如python DF2.py < USERID.txt
在 POSIX shell or 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)
我想将列名放入从 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 as a stream of whitespace-separated words by splitting the input lines and then 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
...您可以输入例如python DF2.py < USERID.txt
在 POSIX shell or 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)