打印pandas datafram中每个列的唯一值

2024-04-26 04:04:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个dataframe(df),想打印dataframe中每一列的唯一值。

我需要在print语句中替换变量(I)[列名]

column_list = df.columns.values.tolist()
for column_name in column_list:
    print(df."[column_name]".unique()

更新

当我使用这个:我得到“意外的EOF解析”,没有额外的细节。

column_list = sorted_data.columns.values.tolist()
for column_name in column_list:
      print(sorted_data[column_name].unique()

您的语法YS-L(上)和下面的语法有什么区别:

for column_name in sorted_data:
      print(column_name)
      s = sorted_data[column_name].unique()
      for i in s:
        print(str(i))

Tags: columnsnameindataframedffordata语法
3条回答

如果您尝试创建注释中提到的多个单独的数据帧,请创建一个数据帧字典:

df_dict = dict(zip([i for i in df.columns] , [pd.DataFrame(df[i].unique(), columns=[i]) for i in df.columns]))

然后可以使用列的名称轻松访问任何数据帧:

df_dict[column name]

可以这样写得更简洁:

for col in df:
    print df[col].unique()

通常,可以使用[]运算符(例如df['col'])或通过attribute(例如df.col)访问数据帧的列。

当预先知道目标列名时,属性访问使代码更加简洁,但有几个注意事项——例如,当列名不是有效的Python标识符(例如df.123)或与内置的DataFrame属性(例如df.index)冲突时,它不起作用。另一方面,[]符号应该始终有效。

cu = []
i = []
for cn in card.columns[:7]:
    cu.append(card[cn].unique())
    i.append(cn)

pd.DataFrame( cu, index=i).T

相关问题 更多 >