python熊猫中数据帧的元素明智减法
以下作品有效,但令我惊讶的是我需要使用numpy
来完成
这个。
import pandas as pd
from io import StringIO
csv = '''\
pool,employee,xd1,xd2,xd1_bar,xd2_bar
1,a,-5.25,-3.92,-4.25,-3.42
1,b,-4.25,-3.92,-4.25,-3.42
1,c,-4.25,-2.92,-4.25,-3.42
1,d,-3.25,-2.92,-4.25,-3.42
2,e,-1.25,-0.92,-0.5,-0.16999999999999998
2,f,-1.25,1.08,-0.5,-0.16999999999999998
2,g,-0.25,0.08,-0.5,-0.16999999999999998
2,h,0.75,-0.92,-0.5,-0.16999999999999998
3,i,3.75,3.08,4.75,3.58
3,j,4.75,2.08,4.75,3.58
3,k,4.75,4.08,4.75,3.58
3,l,5.75,5.08,4.75,3.58
'''
data = pd.read_csv(StringIO(csv))
c1 = ["xd1", "xd2"]
c2 = ["xd1_bar", "xd2_bar"]
data_sub = data.join(
pd.DataFrame(np.array(data[c1]) - np.array(data[c2]), columns=["x1_dev", "x2_dev"])
)
我希望以下方法能起作用:
data[c1].cub(data[c2])
答案 0 :(得分:2)
您在这里所做的操作是正确的,因为pandas
和{因为dataframe
和{ {1}}用于c1和c2
请固定输出,添加column
,因为新的dataframe,index将是range索引,但是您原来的可能不是,您可能不想在加入后丢失信息
index