Как решить ValueError при повторении и добавлении в список - PullRequest
0 голосов
/ 18 июня 2020

ValueError: передано 2 столбца, в переданных данных было 4 столбца:

import pandas as pd    
def customedata():
    colnum = input("How many columns do you need? ")
    colnum = int(colnum)
    rownum = input("How many rows do you need? ")
    # user input column and row
    rownum = int(rownum)
    colName = []
    rowName = []
     # create an empty list

    for col in range(0,colnum):
           colValue =input('Enter the value for column name of column %s:' %(col + 1))
           colName.append(colValue)
           for row in range(0,rownum):
                  rowValue = (int(input('Enter the value of row number %s:' %(row + 1))))
                  rowName.append(rowValue)
                  row = row + 1
                  col = col + 1
    # columns = colName[i]
    df1= pd.DataFrame([rowName],columns = colName)
    print(df1)

Я пытался создать фрейм данных, используя строки и столбцы, вводимые пользователем, но продолжаю получать valueError. Я подумал, что что-то не так с вложенным l oop, но я не смог решить проблему.

1 Ответ

0 голосов
/ 18 июня 2020

Я думаю, что было бы проще создать pd.DataFrame из пользовательского ввода, используя словарь, как показано ниже. Сначала вы создаете пустой dict, затем передаете colName в качестве ключа и свой список rowName в качестве значения. Затем вы можете использовать pd.DataFrame.from_dict(), чтобы преобразовать свой dict в pd.DataFrame

Надеюсь, что это поможет :)

def customedata():
    colnum = input("How many columns do you need? ")
    colnum = int(colnum)
    rownum = input("How many rows do you need? ")
    # user input column and row
    rownum = int(rownum)
    colName = []
    rowName = []
    dictionary = {}
    for col in range(0, colnum):
        colValue = input('Enter the value for column name of column %s:' % (col + 1))
        for row in range(0, rownum):
            rowValue = (int(input('Enter the value of row number %s:' % (row + 1))))
            rowName.append(rowValue)
        dictionary[colValue] = rowName
    df1 = pd.DataFrame.from_dict(dictionary)
    print(df1)
...