繁体   English   中英

熊猫创建的df是另一个df中列的乘积

[英]Pandas create df that is the product of columns in another df

我有以下熊猫数据框:

id | a | b | c | d
------------------
 0 | 1 | 3 | 4 | 5
 1 | 2 | 3 | 5 | 6

我想创建一个新的df,其列是第一个df中连续列的差

新df:

id | b-a | c-b | d-c
--------------------
 0 |  2  |  1  |  1 
 1 |  1  |  2  |  1

谢谢

您可以将subshift一起使用,以删除第一列iloc

df = df.set_index('id')
df = df.sub(df.shift(axis=1)).iloc[:, 1:].reset_index()
print (df)
   id    b    c    d
0   0  2.0  1.0  1.0
1   1  1.0  2.0  1.0

如果需要转换为int

df = df.set_index('id')
df = df.sub(df.shift(axis=1)).iloc[:, 1:].astype(int).reset_index()
print (df)
   id  b  c  d
0   0  2  1  1
1   1  1  2  1

对于更改的列名:

df = df.set_index('id')
cols = df.columns

df = df.sub(df.shift(axis=1)).iloc[:, 1:].astype(int)
df.columns = cols[1:] + '-' + cols[:-1]
df = df.reset_index()
print (df)
   id  b-a  c-b  d-c
0   0    2    1    1
1   1    1    2    1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM