简体   繁体   English

当我转置 dataframe 时,它显示 nan 值

[英]when i transpose a dataframe, it shows nan values

import pymysql
import pandas as pd
import numpy

conn = pymysql.connect(host="localhost",port=3306,db="school",user="root",password="@mit123")
print("Connection established sucessfully")
cursor = conn.cursor()

sql = "SELECT * FROM records"
cursor.execute(sql)
result = cursor.fetchall()

data= result
df = pd.DataFrame(data)
df1=df.T
print(df)
print(df1)

df2 = pd.DataFrame(df1,index=["id","name","rollno.","city"])
print(df2)

The following is the output.以下是output。 What could be causing the problem?什么可能导致问题? Can't I transpose a data frame into another data frame?我不能将一个数据帧转换成另一个数据帧吗?

Connection established sucessfully
   0       1  2   3       4
0  1    amit  1  92  jorhat
1  2  subham  2  93  jorhat
2  3     ram  3  89   surat
3  4    anil  4  91   delhi
4  5   abdul  5  81  bhopal
5  6  joseph  6  90  sikkim
6  7     Ben  7  94  indore
7  8     tom  8  99     goa
        0       1      2      3       4       5       6    7
0       1       2      3      4       5       6       7    8
1    amit  subham    ram   anil   abdul  joseph     Ben  tom
2       1       2      3      4       5       6       7    8
3      92      93     89     91      81      90      94   99
4  jorhat  jorhat  surat  delhi  bhopal  sikkim  indore  goa
           0    1    2    3    4    5    6    7
id       NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN
name     NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN
rollno.  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN
city     NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

Process finished with exit code 0

This is my sql table:这是我的 sql 表:

Also when I use an index in the data frame, it says shape error:此外,当我在数据框中使用索引时,它会显示形状错误:

Shape of passed values is (5, 8), indices imply (4, 8)

I could reproduce the NaN error using my database.我可以使用我的数据库重现 NaN 错误。 So I think the reason is that there are no column names there.所以我认为原因是那里没有列名。 So you can do following:因此,您可以执行以下操作:

import pymysql
import pandas as pd
import numpy

conn = pymysql.connect(host="localhost",
                       port=3306,
                       db="school",
                       user="root",
                       password="@mit123")

print("Connection established sucessfully")

sql = "SELECT * FROM records"

df = pd.read_sql(con=conn,sql=sql)

df1=df.T
print(df)
print(df1)

df2 = pd.DataFrame(df1,index=["id","name","roll_number","city"])
print(df2)

This solves the NaN error.这解决了 NaN 错误。 The shape error may be due to the fact that you are not passing the "percentage" column to the index, but I was unable to reproduce this error.形状错误可能是由于您没有将“百分比”列传递给索引,但我无法重现此错误。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM