Python 使用另一个数据帧的索引创建空数据帧
我有一个数据框df1,有多个列和行。简单的例子:Python 使用另一个数据帧的索引创建空数据帧,python,indexing,pandas,Python,Indexing,Pandas,我有一个数据框df1,有多个列和行。简单的例子: TIME T1 T2 1 10 100 2 20 200 3 30 300 我想创建一个空的数据框df2,然后,用计算结果添加新的列 此时,我的代码如下所示: …添加两个新列: 有没有更好/更安全/更快的方法? 是否可以创建一个空数据帧df2,并且只从df1复制索引 df2 = pd.DataFrame(index=df1.index) 这将创建一个没有列但只有一个索引的数据帧,它将与
TIME T1 T2
1 10 100
2 20 200
3 30 300
我想创建一个空的数据框df2,然后,用计算结果添加新的列
此时,我的代码如下所示:
…添加两个新列:
有没有更好/更安全/更快的方法?
是否可以创建一个空数据帧df2,并且只从df1复制索引
df2 = pd.DataFrame(index=df1.index)
这将创建一个没有列但只有一个索引的数据帧,它将与df1中的索引相同。最好将索引设置为df1.index.copy()
您可以使用
df1.index
isdf2.index
检查它们是否是相同的对象您还可以直接将一个数据帧的索引分配给另一个数据帧
df2.index=df1.index
您可以使用以下短代码:
df2=df1[[]].copy()
以避免在concat之后获取所有的NaN
df1 = pd.DataFrame(x1.toarray(),index=simpledf.index, columns=v.get_feature_names())
使用
X
转换定义新数据帧时,请使用与原始数据帧相同的索引。最好将索引设置为df1.index.copy();否则,df1和df2将共享相同的索引对象。正是由于这个原因,索引是不可变的。当您设置df2.index.name='test'时,df1的索引也将获得名称。该错误将在中修复,因此最好在0.13版本之前使用df1.index.copy(),否则,您只需对索引进行不必要的复制。索引是不可变的,正是因为这个原因——能够在不同的数据结构之间共享它们,而不必担心它们会改变。我喜欢你最初的建议,只是你不必复制和擦除整个数据帧:df2=df1[[]]。copy()#空切片,然后copy索引的长度必须匹配,否则,对于长度不匹配
,将出现值错误
。
df2 = pd.DataFrame(index=df1.index)
df2 = pd.DataFrame(index=df1.index.copy())
df1 = pd.DataFrame(x1.toarray(),index=simpledf.index, columns=v.get_feature_names())