我有一个包含多个列和行的数据框 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?
复制索引答案 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
转换的新数据帧时,请使用与原始数据帧相同的索引。