向空数据帧追加行无效

2024-05-23 15:06:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一段Python代码,基本上可以简化为以下内容:

import pandas as pd

months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
l = [1607.8, 1688.17, 1605.66, 1469.03, 1312.65, 1451.74, 1445.26, 1350.94, 1371.27, 1201.6, 1240.59, 1291.43]

# First, construct a empty DataFrame.
df = pd.DataFrame(columns = months, dtype=float)

# Then, keep adding rows to DataFrame given by list l.
df.append([l])

print df

预期产量为:

^{pr2}$

但是我得到的是:

Empty DataFrame
Columns: [Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec]
Index: []

如果我将df.append([l])替换为以下内容,那么对我来说一切正常。在

df = pd.DataFrame([l], columns = months)
df.columns = months

我做错什么了?在


Tags: columnsdataframedfoctaprjunmarsep
3条回答

您应该使用^{}添加给定列表l的行:

df.loc[len(df.index)+1] = l

方法^{}用于将一个dataframe或其他可附加对象附加到现有dataframe:

DataFrame.append(other, ignore_index=False, verify_integrity=False, sort=None)

Append rows of other to the end of this frame


但是,形成一个列表列表,然后只调用pd.DataFrame.append一次,这样效率会更高。在

^{pr2}$

原因是list.appendpd.DataFrame.loc赋值便宜。在

最简单的方法:

   df= pd.DataFrame(l).T
   df.columns=months

pd.append()未在适当位置发生。您需要保存输出才能使用它。在

相关问题 更多 >