2

在 pandas 中找到你做的 df 的列:

df.columns 它返回一个多索引数组。

如果要将其添加到变量中,请执行以下操作:

columns=df.columns.tolist()

这将为每个列名称创建一个元组

例如 columns=[('A'),('B'),...]

有没有一种方法可以将每列的变量创建columns为列表的字符串项而不是列表的元组项,或者您只需在之后进行一些列表编辑?

4

1 回答 1

2

tolist()如果您有一个多索引,那么生成单个字符串的列表并不总是很清楚,因为可能有多个索引。

但是,正如@jezreal 在评论中所建议的那样,您可以像这样选择第一级:

df.columns.get_level_values(0).tolist()

这可能有重复,因为它为每一列获取第一级。相反,如果您想选择级别 0 的可能值(“唯一”值),您可以使用

df_multiindex.columns.levels[0].tolist()

例子:

import pandas as pd
from io import StringIO

# Create Example Data
df_multiindex = pd.read_csv(StringIO(
'''Fruit,Color,Count,Price
Apple,Red,3,$1.29
Apple,Green,9,$0.99
Pear,Red,25,$2.59
Pear,Green,26,$2.79
Lime,Green,99,$0.39''')).set_index(['Fruit', 'Color']).T

# Print result
print('get_level_values(0): {}'.format(df_multiindex.columns.get_level_values(0).tolist()))
print('levels[0]:           {}'.format(df_multiindex.columns.levels[0].tolist()))

输出:

get_level_values(0): ['Apple', 'Apple', 'Pear', 'Pear', 'Lime']
levels[0]:           ['Apple', 'Lime', 'Pear']
于 2018-05-15T15:16:14.067 回答