将值附加到新数据框并将其中一种数据类型作为索引

时间:2016-07-01 12:44:12

标签: python pandas

我有一个新的数据框df。这是使用:

创建的
df= pd.DataFrame()

我有一个名为'day'的日期值,格式为dd-mm-yyyy,成本值为'cost'。

有人可以告诉我如何将日期和费用值附加到df并将日期指定为索引吗?

例如,如果我有以下值 day = 01-01-2001 成本= 123.12

生成的df看起来像

      date   cost
01-01-2001 123.12

我最终会在多天内添加配对值,因此df最终会看起来像:

      date   cost
01-01-2001 123.12
02-01-2001  23.25
03-01-2001 124.23
    :        :
01-07-2016  2.214

我试图将配对值附加到数据框但不确定语法。我尝试了各种各样的想法,包括以下但没有成功。

df.append([day,cost], columns='date,cost',index_col=[0]) 

2 个答案:

答案 0 :(得分:0)

试试这个:

dfapp = [day,cost]
df.append(dfapp)

答案 1 :(得分:0)

这里有一些事情。首先,使索引的列成为这样,但是当您从文件加载数据框时也可以这样做(见下文):

df.set_index('date', inplace=True)

要添加新行,您应该先将它们写入文件。 Pandas并不擅长动态添加行,这样您就可以在需要进行分析时读取数据。

new_row = ... #a row of new data in string format with values 
              #separated by commas and ending with \n

with open(path, 'a') as f:
    f.write(new_row)

您可以循环播放,也可以单独播放,也可以根据需要随时播放。然后,当您准备好使用它时,您可以使用:

df = pd.read_csv(path, index_col=0, parse_dates=True)

index_col不能为索引列获取字符串名称,因此您必须使用磁盘上的订单索引;在我的情况下,它使第一列成为索引。传递parse_dates=True将使您将声明为索引的日期时间字符串转换为datetime对象。