2016-12-09 5 views
3

У меня есть функция, в которой переменная имеет тип pandas.core.series.Series.Преобразование pandas.core.series.Series в dataframe с соответствующими значениями столбцов python

type of the series shown below. 

<class 'pandas.core.series.Series'> 
product_id_y 1159730 
count     1 
Name: 6159402, dtype: object 

я хочу, чтобы преобразовать это в dataframe, так что, я получаю

product_id_y count 
1159730   1 

я попытался сделать это:

series1 = series1.to_frame() 

но получить неправильный результат

после преобразования к кадру данных

   6159402 
product_id_y 1159730 
count    1 

после выполнения сброса индекса i'e series1 = series1.reset_index()

  index 6159402 
0 product_id_y 1159730 
1   count  1 

есть Anny другой способ сделать это ??

ответ

3

Вы были очень близки, первый to_frame, а затем перенести на T:

s = pd.Series([1159730, 1], index=['product_id_y','count'], name=6159402) 
print (s) 
product_id_y 1159730 
count     1 
Name: 6159402, dtype: int64 

df = s.to_frame().T 
print (df) 
     product_id_y count 
6159402  1159730  1 

df = s.rename(None).to_frame().T 
print (df) 
    product_id_y count 
0  1159730  1 

Другое решение с DataFrame конструктору:

df = pd.DataFrame([s]) 
print (df) 
     product_id_y count 
6159402  1159730  1 

df = pd.DataFrame([s.rename(None)]) 
print (df) 
    product_id_y count 
0  1159730  1 
+0

, если я должен удалить индекс из моего последнего ФР должен df.reset_index() работать? – Shubham

+1

лучше 'df.reset_index (drop = True)' – jezrael

+0

отлично! когда я только делал 'df.reset_index()' он сделал другой столбец, называемый индексом, теперь это нормально после того, как я сделал 'df.reset_index (drop = True)' – Shubham

1

Пример:

import pandas as pd 

df = pd.DataFrame({'Name': ['Will','John','John','John','Alex'], 
        'Payment': [15, 10, 10, 10, 15], 
        'Duration': [30, 15, 15, 15, 20]}) 

Вы можете распечатать путем преобразования серии/dataframe в строку:

> print (df.to_string()) 
    Duration Name Payment 
0  30 Will  15 
1  15 John  10 
2  15 John  10 
3  15 John  10 
4  20 Alex  15 

> print (df.iloc[1].to_string()) 
Duration  15 
Name  John 
Payment  10 
Смежные вопросы