在范围创建中添加字符串

时间:2018-01-01 18:50:04

标签: python

我想创建一个行,以便将其用作数据帧的标头。

格式是这个

[a0, a1, a2]

或没有逗号我不确定将听众粘贴到数据框中需要什么。

我试过的是:

"a" + str(range(0,3))

但结果如下:

a[0, 1, 2]

8 个答案:

答案 0 :(得分:7)

将列表理解与format一起使用:

c = ['a{}'.format(x) for x in range(3)]
print (c)
['a0', 'a1', 'a2']

如果想要更改pandas dataframe中的列名:

df.columns = 'a' + df.columns.astype(str)

或使用add_prefix

df = df.add_prefix('a')

样品:

df = pd.DataFrame([[2,3,4]])
df = df.add_prefix('a')
print (df)
   a0  a1  a2
0   2   3   4

答案 1 :(得分:5)

[0, 1, 2]

返回如下列表:

myList = ["a" + str(val) for val in range(0, 3)]

如果你想让它成为[a0,a1,a2]你可以使用列表理解。

e.g。

myList = []
for val in range(0, 3):
    myList.append("a" + str(val))

如果你还没有使用列表推导,那么这只是一种简洁的写作方式

['a0', 'a1', 'a2']

在此之后,myList将

{{1}}

答案 2 :(得分:5)

您可以使用map

new_data = map(lambda x:"a{}".format(x), range(3))

输出:

['a0', 'a1', 'a2']

或者,稍短:

new_string = ("a{} "*3).format(*range(3)).split()

输出:

['a0', 'a1', 'a2']

答案 3 :(得分:3)

创建范围后,尝试在列表迭代中将字符串'a'添加到列表中。例如:

column_names = range(3)
column_names = ['a'+str(i) for i in x]

然后,您可以在定义数据帧时将此列表用作columns参数。

答案 4 :(得分:3)

如果您正在寻找最短的代码,请尝试使用f-strings列表理解(在Python 3.6 +中):

[f'a{i}' for i in range(3)]

答案 5 :(得分:2)

使用

header = ["a" + str(x) for x in range(0,3)]

输出

["a0","a1","a2"]

答案 6 :(得分:2)

您可以使用列表理解:

["a" + str(i) for i in range(0,3)]

答案 7 :(得分:2)

也许一种不那么简洁但易于阅读的方法是:

b = []
for i in range(0, 3):  
    c = "a" + str(i)
    b.append(c)

在这里,我们采用一个空列表并添加一个包含所需字母的字符串,并将值range()添加到一起,并使用append()方法将它们添加到列表中。