2016-12-07 3 views
1

Это мой код:Панды писать в CSV файл, как столбцы не строки, Python

import os 

file=[] 

directory ='/Users/xxxx/Documents/sample/' 
for i in os.listdir(directory): 
    file.append(i) 


Com = list(file) 
df=pd.DataFrame(data=Com) 
df.to_csv('com.csv', index=False, header=True) 

print('done') 

на данный момент я получаю все значения для i в одном столбце в качестве заголовка строки. Кто-нибудь знает, как сделать каждое значение i в одной строке заголовком столбца?

+0

IIUC вы можете транспонировать ДФ: 'ДФ = pd.DataFrame (data = Com) .T' перед записью в csv – EdChum

+0

@ EdChum oh wow, да, это прекрасно работает. Спасибо alot – reuben

ответ

2

Вам нужно перенести ФР первый используя .T до выписывая в CSV:

In [44]: 
l = list('abc') 
df = pd.DataFrame(l) 
df 

Out[44]: 
    0 
0 a 
1 b 
2 c 

сравнить с:

In [45]: 
df = pd.DataFrame(l).T 
df 

Out[45]: 
    0 1 2 
0 a b c 
+0

Есть ли веские основания предпочитать 'df.T' над [' df.transpose() '] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.transpose. HTML # pandas.DataFrame.transpose)? Я думаю, они точно такие же под капотом. Для меня '.transpose()' кажется более самодокументированным, но, возможно, это не идиоматические панды. –

+1

@StevenRumbalski - это [numpy] (https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.T.html) соглашение, если вы пришли из numpy, тогда он должен быть знаком с читатель, плюс, если вы ненавидите печатать – EdChum

Смежные вопросы