Python.df.唯一的显示/打印内容

Python.df.唯一的显示/打印内容,python,excel,pandas,text,unique,Python,Excel,Pandas,Text,Unique,我对python非常陌生,当我试图在excel列中显示由唯一值生成的数据框时,遇到了一个问题 所以现在发生的是我试着写“aa”我得到了 当我想要的是 a, b, c, d, e, f 甚至 [a,b,c,d,e,f] 哪一个更简单。我的想法是,因为我使用的是str(),所以它是按原样接受数据帧,但是,如果我在编写数据帧时不包含str(),那么 ∞* p!`!@‹!@˛ 作为输出 这是我的密码: df = pd.read_excel(open('/Users/keatonmacl

我对python非常陌生,当我试图在excel列中显示由唯一值生成的数据框时,遇到了一个问题

所以现在发生的是我试着写“aa”我得到了

当我想要的是

a, b, c, d, e, f   
甚至

[a,b,c,d,e,f]  
哪一个更简单。我的想法是,因为我使用的是
str()
,所以它是按原样接受数据帧,但是,如果我在编写数据帧时不包含
str()
,那么

∞*

p!`!@‹!@˛
作为输出

这是我的密码:

df = pd.read_excel(open('/Users/keatonmaclean/Desktop/abcc.xlsx','rb'), sheetname='Sheet1')
# Set ipython's max row display
pd.set_option('display.max_row', 1000)

# Set iPython's max column width to 50
pd.set_option('display.max_columns', 50)

df.columns = df.iloc[0]
df = df[1:]

aa = str(df.loc[:,"Supplier"].unique())
#bb = str(df.loc[:,"CT #"].unique())
#cc = str(df.loc[:,"CT DESC"].unique())
#dd = str(df.loc[:,"CT START"].unique())
#ee = str(df.loc[:,"CT END"].unique())



import os.path

save_path = '/Users/keatonmaclean/Desktop/'

#name_of_file = raw_input("What is the name of the file: ")
name_of_file = "test"

completeName = os.path.join(save_path, name_of_file+".txt")         

file1 = open(completeName, "w+")

toFile =  aa 


file1.write(toFile)

file1.close()

我认为您需要
DataFrame
Series
构造函数,或:

或者,如果需要一列:

s = pd.Series(aa)
print (s)
0    a
1    b
2    c
3    d
4    e
5    f
dtype: object

s.to_csv(file, index=False)
但如果需要,可以使用函数
unique
从所有唯一值创建文件

但是,如果每列的不同长度的唯一值get
NaN
s,则输出中的
NaN
s将替换为空白

df = pd.DataFrame({'Supplier':list('abcceb'),
                   'CT #':[4,5,4,5,5,4],
                   'CT DESC':[7,8,9,4,2,3],
                   'CT START':[1,3,5,7,1,0],
                   'CT END':[5,3,6,9,2,4]})

print (df)
   CT #  CT DESC  CT END  CT START Supplier
0     4        7       5         1        a
1     5        8       3         3        b
2     4        9       6         5        c
3     5        4       9         7        c
4     5        2       2         1        e
5     4        3       4         0        b

df = df.apply(lambda x: pd.Series(x.unique())).astype(object)
print (df)
  CT # CT DESC CT END CT START Supplier
0    4       7      5        1        a
1    5       8      3        3        b
2  NaN       9      6        5        c
3  NaN       4      9        7        e
4  NaN       2      2        0      NaN
5  NaN       3      4      NaN      NaN

df.to_csv(file, index=False)

我认为您需要
DataFrame
Series
构造函数,或:

或者,如果需要一列:

s = pd.Series(aa)
print (s)
0    a
1    b
2    c
3    d
4    e
5    f
dtype: object

s.to_csv(file, index=False)
但如果需要,可以使用函数
unique
从所有唯一值创建文件

但是,如果每列的不同长度的唯一值get
NaN
s,则输出中的
NaN
s将替换为空白

df = pd.DataFrame({'Supplier':list('abcceb'),
                   'CT #':[4,5,4,5,5,4],
                   'CT DESC':[7,8,9,4,2,3],
                   'CT START':[1,3,5,7,1,0],
                   'CT END':[5,3,6,9,2,4]})

print (df)
   CT #  CT DESC  CT END  CT START Supplier
0     4        7       5         1        a
1     5        8       3         3        b
2     4        9       6         5        c
3     5        4       9         7        c
4     5        2       2         1        e
5     4        3       4         0        b

df = df.apply(lambda x: pd.Series(x.unique())).astype(object)
print (df)
  CT # CT DESC CT END CT START Supplier
0    4       7      5        1        a
1    5       8      3        3        b
2  NaN       9      6        5        c
3  NaN       4      9        7        e
4  NaN       2      2        0      NaN
5  NaN       3      4      NaN      NaN

df.to_csv(file, index=False)

第一个建议似乎是最好的选择,特别是“df=pd.DataFrame([aa])print(df)”,然后我发现如果我使用“print df.to_string(index=False,header=False)”将删除左侧的“0”和值上方的“0-5”。感谢第一个建议似乎是最好的选择,特别是“df=pd.DataFrame([aa])print(df)”,然后我发现如果我使用“print df.to_string(index=False,header=False)”将删除左侧的“0”和值上方的“0-5”。谢谢