使用另一个数据框中的索引创建一个空数据框

时间:2013-08-11 21:35:35

标签: python indexing pandas

我有一个包含多个列和行的数据框 df1 。简单的例子:

    TIME T1  T2 
       1 10 100
       2 20 200
       3 30 300

我想创建一个空数据框 df2 ,稍后再添加带有计算结果的新列。

目前我的代码如下:

     df1=pd.read_csv("1.txt",index_col="TIME")

     df2=df1.copy()[[]] #copy df1 and erase all columns

...添加两个新列:

     df2["results1"],df2["results2"]=df1["T1"]*df["T2"]*3,df1["T2"]+100

有更好/更安全/更快的方法吗? 是否可以创建空数据框df2并仅从df1?

复制索引

5 个答案:

答案 0 :(得分:66)

df2 = pd.DataFrame(index=df1.index)

这将创建一个没有列但只是索引的DataFrame,它将与df1中的索引相同。

答案 1 :(得分:2)

最好将index设置为df1.index.copy()

df2 = pd.DataFrame(index=df1.index.copy())

您可以使用df1.index df2.index来检查它们是否是同一个对象

答案 2 :(得分:2)

您还可以将一个数据框的索引直接分配给另一个数据框。

df2.index=df1.index

答案 3 :(得分:0)

您可以使用以下短代码:

df2=df1[[]].copy()

答案 4 :(得分:0)

为避免在concat之后获得所有NaN,请向其添加索引。

df1 = pd.DataFrame(x1.toarray(),index=simpledf.index, columns=v.get_feature_names())

在定义经过X转换的新数据帧时,请使用与原始数据帧相同的索引。