上下文:
我是Pandas的新手,我需要一个基于现有列创建新列的函数。新列名称将具有原始列中的名称和新字符(例如:从“As”列创建“As NEW”列)。 我可以访问旧列标题字符串以生成新列的名称吗?
问题:
我有df['columnA']
,需要获得"columnA"
字符串
答案 0 :(得分:1)
假设您有一个包含列的空DataFrame df
,您可以使用以下列表访问df
列:
>>> df.columns
Index(['columnA', 'columnB'], dtype='object')
.columns
将允许您覆盖df
的列,但您不需要传递另一个Index
。您可以将它传递给常规列表,如下所示:
>>> df.columns = ['columna', 'columnb']
>>> df
Empty DataFrame
Columns: [columna, columnb]
Index: []
答案 1 :(得分:1)
如果我理解正确,这可能就是你要找的。 p>
您可以使用str.contains()作为列,然后使用string formatting创建新列名称。
df = pd.DataFrame({'col1':['A', 'A', 'B','B'], 'As': ['B','B','C','C'], 'col2': ['C','C','A','A'], 'col3': [30,10,14,91]})
col = df.columns[df.columns.str.contains('As')]
df['%s New' % col[0]] = 'foo'
print (df)
As col1 col2 col3 As New
0 B A C 30 foo
1 B A C 10 foo
2 C B A 14 foo
3 C B A 91 foo
答案 2 :(得分:0)
这可以通过columns属性来完成。
cols = df.columns
# Do whatever operation you want on the list of strings in cols
df.columns = cols