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