Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.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_Pandas - Fatal编程技术网

Python 如何根据我的索引长度初始化或更改数据帧?

Python 如何根据我的索引长度初始化或更改数据帧?,python,pandas,Python,Pandas,我有一个如下所示的索引: MyIndex 11 12 13 和一个可能比我的索引长的数据帧:(在某些情况下它们可能相等) 我想将数据帧放入索引中(通过在尾部删除额外的行) 有什么简单的解决办法吗?如果我能在不创建新数据帧的情况下实现这一点会更好。简单的方法就是 假设你有: df1 = pd.DataFrame(index=[0,1,2]) df2 = pd.DataFrame({'c1':[1,2,3,4,5]},index=[0,1,2,3,4]) df1['c1'] = df2['c1'

我有一个如下所示的索引:

MyIndex
11
12
13
和一个可能比我的索引长的数据帧:(在某些情况下它们可能相等)

我想将数据帧放入索引中(通过在尾部删除额外的行)


有什么简单的解决办法吗?如果我能在不创建新数据帧的情况下实现这一点会更好。

简单的方法就是

假设你有:

df1 = pd.DataFrame(index=[0,1,2])
df2 = pd.DataFrame({'c1':[1,2,3,4,5]},index=[0,1,2,3,4])
df1['c1'] = df2['c1'].values[:len(df1.index)]
输出:

>>> df1
   c1
0   1
1   2
2   3
>>> df2
   c1
0   1
1   2
2   3
不创建新的df

说ind=
pd.Index([0,1,2])

输出:

>>> df1
   c1
0   1
1   2
2   3
>>> df2
   c1
0   1
1   2
2   3

简单的方法就是这样

假设你有:

df1 = pd.DataFrame(index=[0,1,2])
df2 = pd.DataFrame({'c1':[1,2,3,4,5]},index=[0,1,2,3,4])
df1['c1'] = df2['c1'].values[:len(df1.index)]
输出:

>>> df1
   c1
0   1
1   2
2   3
>>> df2
   c1
0   1
1   2
2   3
不创建新的df

说ind=
pd.Index([0,1,2])

输出:

>>> df1
   c1
0   1
1   2
2   3
>>> df2
   c1
0   1
1   2
2   3
您可以尝试以下方法:

my_idx = pd.Series([11, 12, 13], name='MyIndex')
df = pd.DataFrame({'OldIndex': [0,1,2,3,4], 
                'c1':['00', '01', '02', '03', '04']}).set_index('OldIndex')
l = len(my_idx)

df = df.iloc[:l].set_index(idx.index)

         c1
MyIndex    
11       00
12       01
13       02
您可以尝试以下方法:

my_idx = pd.Series([11, 12, 13], name='MyIndex')
df = pd.DataFrame({'OldIndex': [0,1,2,3,4], 
                'c1':['00', '01', '02', '03', '04']}).set_index('OldIndex')
l = len(my_idx)

df = df.iloc[:l].set_index(idx.index)

         c1
MyIndex    
11       00
12       01
13       02

您必须创建所需的索引(如
pd.index
),然后将此索引设置为新的df(基于新索引长度的子集)

输出:

    c1
I1  00
I2  01
I3  02

您必须创建所需的索引(如
pd.index
),然后将此索引设置为新的df(基于新索引长度的子集)

输出:

    c1
I1  00
I2  01
I3  02