2017-08-16 4 views
1

私は非常にPythonに慣れていて、Excelの一意の値から作成したデータフレームを表示しようとしているときに問題に遭遇しています。Python Pandas df.Unique display/print contents

だから何が起こっているのか、私は私がしたいことは

a, b, c, d, e, f 

以上に簡単である方にも

[a,b,c,d,e,f] 

が "AAは" 私は

[u'a' u'b' u'c' u'd' u'e' u'f'] 

を取得書いてみるです。私の考えはここに...私はそれを書くとき、私は出力として

∞* 

p!`[email protected][email protected]˛ 

を取得str()が含まれていない場合、私はstr()を使用しておりますので、それは、あるように、データフレームを取ったがされていることを

されています私のコード:

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() 

答えて

0

私はあなたがDataFrame.to_csvまたはSeries.to_csvDataFrameまたはSeriesコンストラクタが必要だと思う:

aa = np.array(['a','b','c','d','e','f']) 

df = pd.DataFrame([aa]) 
print (df) 
    0 1 2 3 4 5 
0 a b c d e f 

df.to_csv(file, index=False) 

場合、または必要性1列:

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) 

しかし、すべての一意の値からファイルを作成する必要がある場合に可能であるapply機能unique

ただし、列あたりの固有値の長さが異なる場合は、NaNと出力NaNが空白で置き換えられます。

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) 
+0

最初の提案は、私が「印刷df.to_string(インデックス= Falseを、ヘッダを使用するならば、私が見つけ特異最良の選択肢 "DF = pd.DataFrame([AA])_プリント(DF)" と思われます= False) "は、左側の" 0 "と値の上の" 0-5 "を削除します。ありがとう – Keaton