[英]add new row to pandas dataframe
我正在尝试向数据框添加新行。 我知道它通常是用dataframe.append()
方法完成的,但它不适用于我的情况。 为什么它不起作用是因为用户可以读取他/她上传到我的应用程序的任何 csv 文件,所以我不知道数据框的样子。 在伪代码中,我做了这样的事情:
for headers in df.columns.values.tolist()
#generate field with name header
<input type="text" class="form-control" name="{{headers}}" placeholder="{{headers}}"></input>
当我遍历这些值时,我会将它们附加到一个列表中,这样我就可以在一个列表中获取所有值:
['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.