简体   繁体   中英

__init__() got multiple values for keyword argument 'columns'

I am saving data in csv using pandas dataframe.

    new_data = pd.DataFrame()
for i in results:
    Customerid = i[0]
    JOININGDATE = i[1]
    jdate = i[1].strftime('%Y-%m-%d')
    td=datetime.datetime.now().date()
    bd=datetime.date(JOININGDATE.year,JOININGDATE.month,JOININGDATE.day)
    age_years=int((td-bd).days /365.25)
    BuisnessAge = age_years
    data = pd.DataFrame(Customerid,jdate,BuisnessAge, columns=['CustomerID', 'JOININGDATE', 'BuisnessAge'])
    new_data = new_data.append(data,sort=False)
    new_data = new_data.drop_duplicates()

pd.DataFrame(...) (roughly) leads to pd.DataFrame.__init__(...) , that's why __init__ is part of the error message.

The actual error is this: The signature of pd.DataFrame(...) is:

pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False)

You called:

pd.DataFrame(Customerid,jdate,BuisnessAge, columns=['CustomerID', 'JOININGDATE', 'BuisnessAge'])

So:

data=Customerid,
index=jdate,
columns=BuisnessAge,
columns=['CustomerID', 'JOININGDATE', 'BuisnessAge']

Thus you defined columns multiple times, which combined leads to your error __init__() got multiple values for keyword argument 'columns' .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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