获取给定列中使用的唯一字符列表

vin*_*t75 5 python dataframe pandas

我有一个csv要处理的文件pandas。该列称为raw_value我想检索该列中的唯一字符。

\n\n
x=df.manual_raw_value.unique()\n
Run Code Online (Sandbox Code Playgroud)\n\n

允许检索唯一的行。但是,我希望检索此列中的整个字符。\n即:\nalphabet= 6 , 3 5 1 8 VOTREA 2 。\xc3\xa9 \xc3\xa8 / :

\n\n
   raw_value\n    6,35\n    11,68\n    VOTRE\n    AVEL AR VRO\n    2292\n    questions.\n    nb\n    les\n    937,99\n    \xc3\xa0\n    et\n    TTC\n    1\n    620\n    Ech\xc3\xa9ance\n    vos\n    ROB21\n    Pi\xc3\xa8ce\n    AGRIAL\n    d\xc3\xa9signation\n    des\n    taux\n    13s\n    2\n    par\n    le\n    mois,\n    32\n    21/07/2016\n    FR\n    au\n    0\n    t\xc3\xa9l\xc3\xa9phonique\n    BROYEUR\n    et\n    ST\n    TVA\n    de\n    des\n    ECHEANCIER\n    \xc3\xa0\n    ne\n    lieu\n    481,67\n    N\xc2\xb00016\n    de\n    minist\xc3\xa8re\n    de\n    20/11/2015\n    Si\n    vous\n    59\n    cas\n    EUR\n    3.19\n    2\n    contr\xc3\xb4le\n    assurances\n    BAS\n    et\n    4423873\n    renseignements\n    6104219\n    C9DECOMPTEDIVERS\n    6635\n    DE\n    10825\n
Run Code Online (Sandbox Code Playgroud)\n\n

编辑_1

\n\n

所有三个解决方案都完美运行。\n我选择了第二个

\n\n
set(df.raw_value.apply(list).sum())\n
Run Code Online (Sandbox Code Playgroud)\n\n

但它返回一些编码的字符。与编码有关吗?\n如何解码并显示真实的 char 。这是它打印的内容

\n\n
{\' \',\n \'!\',\n \'"\',\n \'%\',\n \'&\',\n "\'",\n \'(\',\n \')\',\n \'*\',\n \'+\',\n \',\',\n \'-\',\n \'.\',\n \'/\',\n \'0\',\n \'1\',\n \'2\',\n \'3\',\n \'4\',\n \'5\',\n \'6\',\n \'7\',\n \'8\',\n \'9\',\n \':\',\n \'=\',\n \'>\',\n \'?\',\n \'@\',\n \'_\',\n \'a\',\n \'b\',\n \'c\',\n \'d\',\n \'e\',\n \'f\',\n \'g\',\n \'h\',\n \'i\',\n \'j\',\n \'k\',\n \'l\',\n \'m\',\n \'n\',\n \'o\',\n \'p\',\n \'q\',\n \'r\',\n \'s\',\n \'t\',\n \'u\',\n \'v\',\n \'w\',\n \'x\',\n \'y\',\n \'z\',\n \'\\x82\',\n \'\\x87\',\n \'\\x94\',\n \'\\xa1\',\n \'\\xa7\',\n \'\\xaa\',\n \'\\xab\',\n \'\\xac\',\n \'\\xae\',\n \'\\xaf\',\n \'\\xb0\',\n \'\\xb4\',\n \'\\xb9\',\n \'\\xbb\',\n \'\\xc2\',\n \'\\xc3\',\n \'\\xe2\'}\n
Run Code Online (Sandbox Code Playgroud)\n

All*_*len 7

您可以首先将原始值转换为字符串列表,然后堆栈到 char df 并获取唯一元素。

\n\n
df.applymap(list).raw_value.apply(pd.Series).stack().unique()\nOut[620]: array(['6', ',', '3', ..., '\xc3\xb4', 'D', 'M'], dtype=object)\n
Run Code Online (Sandbox Code Playgroud)\n\n

您还可以通过将原始值转换为列表、连接列表然后获取列表的集合来完成此操作。

\n\n
set(df.raw_value.apply(list).sum())\n
Run Code Online (Sandbox Code Playgroud)\n\n

一种更简单的方法是将原始值直接连接到字符串,然后对其应用 set,因为字符串本质上是一个列表。

\n\n
set(df.raw_value.sum())\n
Run Code Online (Sandbox Code Playgroud)\n\n

请注意,第一种方法将在结果中包括 nan,而第二种和第三种方法则不包括 nan。

\n