如何展平熊猫数据框中的两列?
例如
Task 1 :
company-asset company-debt wealth
GOLD SILVER 2000.0
BRONZE IRON 4000.0
IRON GOLD 1500.0
现在我要(资产为+债务为负)
GOLD SILVER BRONZE IRON
500 -2000 4000 -2500
Task 2:
Now i want to get the original dataframe with rows where value of
the columns in dataframe 2 is greater than -1000 and less than +1000.
So in the case above it will only be GOLD therefore we get this DF
company-asset company-debt wealth
GOLD SILVER 2000.0
IRON GOLD 1500.0
最佳答案
尝试这个:
s = (df.set_index('wealth').stack()
.rename('metal')
.rename_axis(('wealth', 'type'))
.reset_index()
.pipe(lambda l: l.assign(wealth=l.wealth.where(l.type.str.endswith('asset'),
-l.wealth)))
.groupby('metal').wealth.sum())
s
#metal
#BRONZE 4000.0
#GOLD 500.0
#IRON -2500.0
#SILVER -2000.0
#Name: wealth, dtype: float64
metals = s[(s > -1000) & (s < 1000)].index
df[df['company-asset'].isin(metals) | df['company-debt'].isin(metals)]
# company-asset company-debt wealth
#0 GOLD SILVER 2000.0
#2 IRON GOLD 1500.0
关于python - 展平Pandas数据框中的列,然后引用原始,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43331525/