如何在熊猫中向数据框追加新行?

vip*_*rao 5 python csv dataframe pandas

这是我使用的代码

    iname = "name1"    
    ipassword = "password1"
    iemail = "email@domain.com"
    res1 = []
    df = pd.read_csv("login.csv", sep=',', encoding="utf-8")
    res1.append(iname,ipassword,iemail)
    print(res1,res2,res3)
    df.to_csv("login.csv", index=False)
Run Code Online (Sandbox Code Playgroud)

如何使用pandas数据框将名称,密码和电子邮件存储在csv文件中。

login.csv

name     password     email
admin    admin        asdfs
zds      sd           dsssfsfd
vipul    rao          dsfdsfs
Run Code Online (Sandbox Code Playgroud)

Mih*_*nut 8

另一种简单的方法是使用pd.Dataframe.loc方法。

row = [iname, ipassword, iemail]
df.loc[len(df)] = row
df.to_csv("login.csv", index=False)
Run Code Online (Sandbox Code Playgroud)

  • 你好。这确实是一个简洁的答案。我只是想知道为什么 ``df.iloc[len(df)]=row``` 在这种情况下不起作用? (3认同)
  • @RaghavKumar 设计决策,“iloc 无法放大其目标对象”,但“loc”可以 (2认同)

Viv*_*gan 7

用 -

iname = "name1"    
ipassword = "password1"
iemail = "email@domain.com"

df2 = df.append(pd.DataFrame([[iname,ipassword,iemail]], columns
=df.columns))
df2.to_csv("login.csv", index=False)
Run Code Online (Sandbox Code Playgroud)

输出

    name   password             email
0  admin      admin             asdfs
1    zds         sd          dsssfsfd
2  vipul        rao           dsfdsfs
0  name1  password1  email@domain.com
Run Code Online (Sandbox Code Playgroud)