我有以下数据框
dtf = pd.DataFrame({'col1' : ['howdy_dude'],
'col2' : ["HI"],
'col3' : ["3"]})
我只需要获取带有字符串格式输出的标题列,
种类:'col1 + col2 + col3'
此示例为3列,但有时列数可以更高,有时可以更低。
谢谢。
答案 0 :(得分:2)
据我所知,您希望无论列数如何,所有列字符串的总和。
这是回应
dtf = pd.DataFrame({'col1' : ['howdy_dude'],
'col2' : ["HI"],
'col3' : ["3"]})
dtf['new'] = dtf.apply(' '.join, axis=1)
dtf
此new
列将包含给定行的所有列中所有字符串的总和(如果需要,您可以删除连接中的空格)。
此外,如果您想将列名添加为字符串,则可以将join
用作
dtf = pd.DataFrame({'col1' : ['howdy_dude'],
'col2' : ["HI"],
'col3' : ["3"]})
result = " ".join(dtf.columns)
print (type(result))
result
希望这会有所帮助
答案 1 :(得分:1)
确切的答案是,如Harry_pb's answer所述:
" + ".join(dtf.columns)
请注意,{list()
)没有用。
但是,如果您的列名是整数,那么它将不起作用。您需要先将它们转换为字符串,例如:
dtf.columns = [1,2,3]
" + ".join( dtf.columns.astype(str) )
此外,如果您有MultiIndex
,则此方法将不起作用。因此,一般而言,编写起来更快,您可以执行以下操作:
" + ".join( dtf.columns.format() )
如果您需要对MultIndex格式进行更多控制,则可以使用列表理解。例如:
id = pd.MultiIndex.from_tuples( (('A','X',0), ('B','Y',0), ('C','X',0)) )
'\n'.join([
str(level) if i == 0 else '{}|_{}'.format(' '*(i-1), level)
for elmt in id
for i, level in enumerate(elmt)
])
出局:
A
|_X
|_0
B
|_Y
|_0
C
|_X
|_0
答案 2 :(得分:0)
如果特别需要这种'col1 + col2 + col3'
格式,
"+".join(list(dtf.columns))
答案 3 :(得分:-1)
要获取所有列,请使用:
dtf.columns.tolist()
然后您会找到它们的列表,然后可以根据需要对其进行合并。