Pandas:从特定列标题中获取字符串

时间:2017-10-22 22:12:58

标签: python pandas

上下文:

我是Pandas的新手,我需要一个基于现有列创建新列的函数。新列名称将具有原始列中的名称和新字符(例如:从“As”列创建“As NEW”列)。 我可以访问旧列标题字符串以生成新列的名称吗?

问题:

我有df['columnA'],需要获得"columnA"字符串

3 个答案:

答案 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)

如果我理解正确,这可能就是你要找的。

您可以使用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