使用 pandas 提取 excel 文件中所有列的所有唯一值

Using pandas to extract all unique values across all columns in excel file

我是 pandas/python 的新手。我正在尝试提取一个 excel 文件并输出一个 excel 文件,其中包含每列中的所有唯一值。

我可以使用以下方法轻松打印值:

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

我的问题是:如何才能将这些结果发送到 excel 文件,而不仅仅是打印它们。提前谢谢你。

使用dictionary comprehension创建新的独特框架,然后创建一个新文件。只要数组长度相同,就可以很容易地使用字典来创建 DataFrame。为了确保使用 unique 时数组的长度相同,我们只需将数组转换为 pd.Series

您没有预期的输出,所以我假设您只想在一个文件中包含所有唯一值,nans 用于缺失值。

pd.DataFrame({col: pd.Series(df[col].unique()) 
              for col in df.columns}).to_excel('some_file_name.xlsx', index=False)

这是一个工作示例

# sample df
import pandas as pd
df = pd.DataFrame([[1,2,3,1,2],
                   list('abccd'),
                   [1]*5]).T

   0  1  2
0  1  a  1
1  2  b  1
2  3  c  1
3  1  c  1
4  2  d  1

输出

pd.DataFrame({col: pd.Series(df[col].unique()) 
              for col in df.columns})

     0  1    2
0    1  a    1
1    2  b  NaN
2    3  c  NaN
3  NaN  d  NaN