[英]Pandas split values of a row into two different rows
我有一个包含三行的数据框。 我想从中间行中取出一半并将其添加到顶部和底部。 下面的示例数据框:
data = {'A': [3, 2, 4],
'B': [3, 5, 4]}
df = pd.DataFrame(data, columns = ['A','B'])
从这个数据框中,我如何能够将第二行(A:2,B:5)拆分为其他行,以便输出
data_output = {'A': [4, 5],
'B': [5.5, 6.5]}
df_output = pd.DataFrame(data_output, columns = ['A','B'])
我目前的想法是将行除以 2 添加到其他行追加和子集。
x = df.loc[0, ] + df.loc[1, ]/2
y = df.loc[2, ] + df.loc[1, ]/2
df2 = df.append([x, y], ignore_index=True)
df2.loc[3:]
但是,如果我想保留更大的数据帧或在多个实例上操作,这似乎效率低下。 任何想法如何拆分行的值并将拆分值添加到其上方和下方的行?
如果此操作在单行上,您可以尝试此操作:
row = 1 #index
df.update(df.loc[[row-1,row+1]].add(df.loc[row].div(2)))
out = df.drop(row).reset_index(drop=True)
print(out)
A B
0 4.0 5.5
1 5.0 6.5
或者对于副本而不是操作原始 df:
row = 1
(df.loc[[row-1,row+1]].add(df.loc[row].div(2)).reindex(df.index)
.fillna(df).drop(row).reset_index(drop=True))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.