熊猫用不同大小的块代替行的块

时间:2019-05-14 13:11:13

标签: python python-3.x pandas

给出任意数据框,例如

df = pd.DataFrame([10,8,6,4,2])
>>> df
    0
0  10
1   8
2   6
3   4
4   2

我想用不同大小的块替换该数据集的块:

new_chunk = pd.DataFrame([1,1,1,1])
>>> df.iloc[[0,1]]
    0
0  10
1   8
df.iloc[[0,1]].replace_chunk(new_chunk)
>>> df
    0
0   1
1   1
2   1
3   1
2   6
3   4
4   2

是否存在执行该操作的单个命令(replace_chunk不存在,我想模仿他的行为)?也许有多个命令?

2 个答案:

答案 0 :(得分:2)

concat与3个数据帧一起使用-第一个值在位置的第一个值之前,然后新值和最后一个在以下位置:

df = pd.DataFrame([10,8,6,4,2])
new_chunk = pd.DataFrame([1,1,1,1])

pos = [0, 1]
df = pd.concat([df.iloc[:pos[0]], new_chunk, df.iloc[pos[-1]:]], ignore_index=True)
print (df)
   0
0  1
1  1
2  1
3  1
4  8
5  6
6  4
7  2

pos = [2, 4]
df = pd.concat([df.iloc[:pos[0]], new_chunk, df.iloc[pos[-1]:]], ignore_index=True)
print (df)
    0
0  10
1   8
2   1
3   1
4   1
5   1
6   2

答案 1 :(得分:2)

尝试一下:

import pandas as pd

df = pd.DataFrame([10,8,6,4,2])

new_chunk = pd.DataFrame([1,1,1,1])
df = df[df.iloc[[0,1]].shape[0]:]
df = pd.concat([new_chunk,df],axis=0)
print(df)

输出:

   0
0  1
1  1
2  1
3  1
2  6
3  4
4  2