gpt4 book ai didi

Python Pandas - 使用 For 语句添加列名称

转载 作者:行者123 更新时间:2023-11-30 22:39:44 24 4
gpt4 key购买 nike

我正在尝试导入Semeion Handwritten Digit Data Set作为 pandas DataFrame,但第一行被视为列名称。

df.head()
0.0000 0.0000.1 0.0000.2 0.0000.3 0.0000.4 0.0000.5 1.0000 1.0000.1 \
0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0
1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
2 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0
3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
4 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0

1.0000.2 1.0000.3 ... 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8
0 1.0 1.0 ... 1 0 0 0 0 0 0 0 0 0
1 0.0 1.0 ... 1 0 0 0 0 0 0 0 0 0
2 1.0 1.0 ... 1 0 0 0 0 0 0 0 0 0
3 0.0 1.0 ... 1 0 0 0 0 0 0 0 0 0
4 1.0 1.0 ... 1 0 0 0 0 0 0 0 0 0

[5 rows x 266 columns]

由于 DataFrame 有 266 列,我尝试使用 lambda 和 for 循环将数字指定为列名称......使用以下代码:

df = pd.read_csv("http://archive.ics.uci.edu/ml/machine-learning-databases/semeion/semeion.data", delimiter = r"\s+",
names = (lambda x: x for x in range(0,266)) )

但是我得到了奇怪的列名称,例如:

>>> df.head(2)
<function <genexpr>.<lambda> at 0x04F4E588> \
0 0.0
1 0.0

<function <genexpr>.<lambda> at 0x04F4E618> \
0 0.0
1 0.0

<function <genexpr>.<lambda> at 0x04F4E660> \
0 0.0
1 0.0

如果我删除括号,则代码会引发语法错误:

>>> df = pd.read_csv("http://archive.ics.uci.edu/ml/machine-learning-databases/semeion/semeion.data", delimiter = r"\s+",
names = lambda x: x for x in range(0,266) )
SyntaxError: invalid syntax

谁能告诉我:

1) 如何获取数字形式的列名称...从 0 到 266

2)如果我得到一个以第一行作为列名的 DataFrame,我如何将其下推并添加新的列名,而不丢失第一行?

TIA

最佳答案

我认为您需要参数 header=Nonenames=range(266) 来设置 read_csv 中列的默认名称:

url = "http://archive.ics.uci.edu/ml/machine-learning-databases/semeion/semeion.data"
df = pd.read_csv(url, sep = r"\s+", header=None)
<小时/>
df = pd.read_csv(url, sep = r"\s+", names=range(266))

关于Python Pandas - 使用 For 语句添加列名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43053264/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com