df.columns.tolist() 到 return 字符串而不是元组
df.columns.tolist() to return strings not tuples
在 pandas 中查找 df 的列:
df.columns
returns 一个多索引数组。
如果你想将它添加到你做的变量:
columns=df.columns.tolist()
这将为每个列名称创建一个元组
例如
columns=[('A'),('B'),...]
有没有一种方法可以创建变量 columns
,将每一列作为列表的字符串项而不是列表的元组项,或者您是否只需要在之后进行一些列表编辑?
如果你有一个多索引,并不总是很清楚 tolist()
会生成单个字符串的列表,因为有可能有多个索引。
但是,正如@jezreal 在评论中所建议的那样,您可以 select 第一级,如下所示:
df.columns.get_level_values(0).tolist()
这可能有重复项,因为它获得了 每个 列的第一级。相反,如果您想 select 级别 0 的可能值("unique" 值),您可以使用
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,.29
Apple,Green,9,[=12=].99
Pear,Red,25,.59
Pear,Green,26,.79
Lime,Green,99,[=12=].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']
在 pandas 中查找 df 的列:
df.columns
returns 一个多索引数组。
如果你想将它添加到你做的变量:
columns=df.columns.tolist()
这将为每个列名称创建一个元组
例如
columns=[('A'),('B'),...]
有没有一种方法可以创建变量 columns
,将每一列作为列表的字符串项而不是列表的元组项,或者您是否只需要在之后进行一些列表编辑?
如果你有一个多索引,并不总是很清楚 tolist()
会生成单个字符串的列表,因为有可能有多个索引。
但是,正如@jezreal 在评论中所建议的那样,您可以 select 第一级,如下所示:
df.columns.get_level_values(0).tolist()
这可能有重复项,因为它获得了 每个 列的第一级。相反,如果您想 select 级别 0 的可能值("unique" 值),您可以使用
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,.29
Apple,Green,9,[=12=].99
Pear,Red,25,.59
Pear,Green,26,.79
Lime,Green,99,[=12=].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']