Pandas df.itertuples переименовывает столбцы данных при печатиPython

Программы на Python
Ответить
Anonymous
 Pandas df.itertuples переименовывает столбцы данных при печати

Сообщение Anonymous »

Я знаю, что обычно itertuples() pandas возвращает значения каждого из них, включая имена столбцов, следующим образом:

Код: Выделить всё

ab=pd.DataFrame(np.random.random([3,3]),columns=['hi','low','med'])
for i in ab.itertuples():
print(i)
и вывод будет следующим:

Код: Выделить всё

Pandas(Index=0, hi=0.05421443, low=0.2456833, med=0.491185)
Pandas(Index=1, hi=0.28670429, low=0.5828551, med=0.279305)
Pandas(Index=2, hi=0.53869406, low=0.3427290, med=0.750075)
Однако я понятия не имею, почему столбцы не отображаются так, как я ожидал, для другого набора кода, как показано ниже:

Код: Выделить всё

            us qqq equity  us spy equity
date
2017-06-19            0.0            1.0
2017-06-20            0.0           -1.0
2017-06-21            0.0            0.0
2017-06-22            0.0            0.0
2017-06-23            1.0            0.0
2017-06-26            0.0            0.0
2017-06-27           -1.0            0.0
2017-06-28            1.0            0.0
2017-06-29           -1.0            0.0
2017-06-30            0.0            0.0
выше приведен кадр данных Pandas с временной меткой в ​​качестве индекса, float64 в качестве значений в списке и списком строк ['us qqqequity','us spyequity '] в качестве столбцов.

Когда я это делаю:

Код: Выделить всё

for row in data.itertuples():
print (row)
Столбцы отображаются как _1 и _2 следующим образом:

Код: Выделить всё

Pandas(Index=Timestamp('2017-06-19 00:00:00'), _1=0.0, _2=1.0)
Pandas(Index=Timestamp('2017-06-20 00:00:00'), _1=0.0, _2=-1.0)
Pandas(Index=Timestamp('2017-06-21 00:00:00'), _1=0.0, _2=0.0)
Pandas(Index=Timestamp('2017-06-22 00:00:00'), _1=0.0, _2=0.0)
Pandas(Index=Timestamp('2017-06-23 00:00:00'), _1=1.0, _2=0.0)
Pandas(Index=Timestamp('2017-06-26 00:00:00'), _1=0.0, _2=0.0)
Pandas(Index=Timestamp('2017-06-27 00:00:00'), _1=-1.0, _2=0.0)
Pandas(Index=Timestamp('2017-06-28 00:00:00'), _1=1.0, _2=0.0)
Pandas(Index=Timestamp('2017-06-29 00:00:00'), _1=-1.0, _2=0.0)
Pandas(Index=Timestamp('2017-06-30 00:00:00'), _1=0.0, _2=0.0)
Кто-нибудь знает, что я сделал не так? Связано ли это с какой-то проблемой ссылки на переменные при создании исходного фрейма данных? (Кроме того, в качестве побочного вопроса я узнал от сообщества, что тип данных, генерируемых функцией itertuples(), должен быть кортежем, но кажется (как показано выше), тип возвращаемого значения такой же, как я проверил из оператора типа?)< /p>

Спасибо за ваше терпение, поскольку я все еще пытаюсь освоить применение DataFrame.

Подробнее здесь: https://stackoverflow.com/questions/453 ... n-printing
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»