繁体   English   中英

向 Pandas 数据框添加新行

[英]add new row to pandas dataframe

我正在尝试向数据框添加新行。 我知道它通常是用dataframe.append()方法完成的,但它不适用于我的情况。 为什么它不起作用是因为用户可以读取他/她上传到我的应用程序的任何 csv 文件,所以我不知道数据框的样子。 在伪代码中,我做了这样的事情:

  1. 用户上传一个 csv 文件
  2. 我解析它并将其显示在网站上
  3. 用户点击一个按钮来添加新行,然后被重定向到一个网站,在那里它动态生成文本字段来输入新行的信息。 该字段是根据数据帧具有的列数生成的:
for headers in df.columns.values.tolist() 
#generate field with name header
<input type="text" class="form-control" name="{{headers}}" placeholder="{{headers}}"></input>
  1. 然后用户输入新行的值并单击“添加按钮”
  2. 然后我可以遍历用户输入的所有值。
  3. 我根据这些值添加新行。

当我遍历这些值时,我会将它们附加到一个列表中,这样我就可以在一个列表中获取所有值:

['PPIQ.SQU900025', 'PPI output index - All industries', '2020.06', '1183', '1184']

我做了所有事情,但最后一件事是根据上面的列表向数据框中添加新行。 如何将这些值添加到新行? 我一直在寻找,但不能让它工作.. 请帮忙。 我正在使用烧瓶。

这是我如何显示数据以及如何添加新行的图片: 显示数据 添加行

如果您从新数据创建新的DataFrame ,您仍然可以使用 append。

df = df.append(
    pd.DataFrame(
        index=(df.index.max()+1,),
        columns=df.columns,
        data=(new_data,),
    )
)

这不会验证任何内容,因此如果您传递较少的数据列,则会引发异常。 您必须事先验证数据。

您可以将列表转换为数据框并使用concat将其连接到原始数据框。

假设原始 DataFrame 存储在df ,并且您将新数据存储在new

# List of new values
new = ['PPIQ.SQU900025', 'PPI output index - All industries', '2020.06', '1183', '1184']
# New data as pandas.DataFrame
new = pd.DataFrame(columns=df.columns, data=[new])
# Overwrite original dataframe
df = pd.concat([df, new], axis=0)

暂无
暂无

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

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