在范围创建中添加字符串

cot*_*inR 4 python

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

格式是这样的

[a0, a1, a2]
Run Code Online (Sandbox Code Playgroud)

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

我试过的是这个:

"a" + str(range(0,3))
Run Code Online (Sandbox Code Playgroud)

但结果如下:

a[0, 1, 2]
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 7

使用列表理解format:

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

如果想在pandas dataframe中更改列名:

df.columns = 'a' + df.columns.astype(str)
Run Code Online (Sandbox Code Playgroud)

或使用add_prefix:

df = df.add_prefix('a')
Run Code Online (Sandbox Code Playgroud)

样品:

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


小智 5

range(0, 3)
Run Code Online (Sandbox Code Playgroud)

返回如下列表:

[0, 1, 2]
Run Code Online (Sandbox Code Playgroud)

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

例如

myList = ["a" + str(val) for val in range(0, 3)]
Run Code Online (Sandbox Code Playgroud)

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

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

在此之后,myList将会是

['a0', 'a1', 'a2']
Run Code Online (Sandbox Code Playgroud)


Aja*_*234 5

你可以使用map:

new_data = map(lambda x:"a{}".format(x), range(3))
Run Code Online (Sandbox Code Playgroud)

输出:

['a0', 'a1', 'a2']
Run Code Online (Sandbox Code Playgroud)

或者,稍短:

new_string = ("a{} "*3).format(*range(3)).split()
Run Code Online (Sandbox Code Playgroud)

输出:

['a0', 'a1', 'a2']
Run Code Online (Sandbox Code Playgroud)