我想创建一个行,以便将其用作数据帧的标头。
格式是这个
[a0, a1, a2]
或没有逗号我不确定将听众粘贴到数据框中需要什么。
我试过的是:
"a" + str(range(0,3))
但结果如下:
a[0, 1, 2]
答案 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()
方法将它们添加到列表中。