我創建了兩個數據框,我想減去它們的值,省略第一個DataFrame中的兩個第一列。如何減少數據框中的值,省略一些列
df = pd.DataFrame({'sys':[23,24,27,30],'dis': [0.8, 0.8, 1.0,1.0], 'Country':['US', 'England', 'US', 'Germany'], 'Price':[500, 1000, 1500, 2000]})
print df
index = {'sys':[23,24,27,30]}
df2 = pd.DataFrame({ 'sys':[23,24,27,30],'dis': [0.8, 0.8, 1.0,1.0],'Price2':[300, 600, 4000, 1000], 'Price3': [2000, 1000, 600, 2000]})
df = df.set_index(['sys','dis', 'Country']).unstack().fillna(0)
df = df.reset_index()
df.columns.names =[None, None]
df.columns = df.columns.droplevel(0)
infile = pd.read_csv('benchmark_data.csv')
infile_slice = infile[(infile.System_num==26)]['Benchmark']
infile_slice = infile_slice.reset_index()
infile_slice = infile_slice.drop(infile_slice.index[4])
del infile_slice['index']
print infile_slice
dfNew = df.sub(infile_slice['Benchmark'].values, axis=0)
在這種情況下,我只能減去所有列中的所有值。我如何跳過df的兩個第一列?我試過:dfNew = df.iloc[3:].sub(infile_slice['Benchmark'].values,axis=0)
,但它不起作用。
DataFrames樣子:
DF:
England Germany US
0 23 0.8 0.0 0.0 500.0
1 24 0.8 1000.0 0.0 0.0
2 27 1.0 0.0 0.0 1500.0
3 30 1.0 0.0 2000.0 0.0
infile_slice:
Benchmark
0 3.3199
1 -4.0135
2 -4.9794
3 -3.1766
是否'df.US - infile_slice.Benchmark'工作? – Psidom