简体   繁体   中英

How to append an empty column in a dataframe in Python Pandas

I have a DataFrame in Python. It has couple of columns, name 'Item','FRUIT', 'Days before it get spoiled', 'TEMP' etc.

I want to write a program which generates a 'CODE'. for each row in the DataFrame. So, I generated an empty column Named 'CODE'.

Item FRUIT DAYs TEMP
Item_1 Apple 5 20
Item_2 Banana 15 35

Now I have couple of coditions, to generate a code and fill the empty column called 'CODE' using append() method. Following is the program I came up with. But it is not appending in the 'CODE' column. I am new in Programing and I need it for reasearch. Any help for program is more than welcome

from csv import reader

file = open('customerprocessrequirement1.csv', 'r')
Reader = csv.reader(file)
df = pd.read_csv('customerprocessrequirement1.csv')
df['CODE'] = ''
ndf = df
AMGT_code = []

for row in Reader:
    if row[1] == 'APPLE':
        CODE.append(1)
    else:
        CODE.append(2)
    if row[2] <= '10':
        CODE.append(0)
    else row[2] > '10':
        AMGT_code.append(1)
    if row[3] <= '20':
        CODE.append(1)
    else:
        CODE.append(2)

Here's some sample code which you can tweak after the rules have been clearly articulated.

df = pd.DataFrame([["Item_1","Apple",5,20],["Item_2","Banana",15,35]], 
                  columns=["Item","Fruit","Days","Temp"])
df["Code"] = 0

df.loc[df["Fruit"]=="Apple", "Code"] = 1
df.loc[df["Temp"]>20, "Code"] = 2
df.loc[(df["Fruit"]!="Apple") & (df["Days"]>10), "Code"] = 3
print(df)

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