Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用另一个数据帧的索引创建空数据帧_Python_Indexing_Pandas - Fatal编程技术网

Python 使用另一个数据帧的索引创建空数据帧

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) 这将创建一个没有列但只有一个索引的数据帧,它将与

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

    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
is
df2.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())