ggu*_*pta 1 python plot distribution pandas
我有一个熊猫数据框,它有列A&B
我只想绘制列A&之间差异百分比的分布图B
A B
1 1.051990e+10 1.051990e+04
2 1.051990e+10 1.051990e+04
5 4.841800e+10 1.200000e+10
8 2.327700e+10 2.716000e+10
9 1.204900e+10 2.100000e+08
Run Code Online (Sandbox Code Playgroud)
分布图就像,有多少条记录有 10% 的差异,有多少条记录有 20% 的差异
我试过如下
df percCal(x,y):
return (x-y)*100/x
df['perc'] = df.apply(lambda x: percCal(df['A'], df['B']), axis=1)
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为我是新手,请帮忙
你不需要lambda手术。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
df1 = pd.DataFrame(np.random.randint(1, 10, (20, 2)), columns=['A', 'B'])
def percCal(x,y):
return (x-y)*100/x
Run Code Online (Sandbox Code Playgroud)
或者,直接操作列:
df1['diff'] = (df1['A'] - df1['B']) * 100 / df1['A']
Run Code Online (Sandbox Code Playgroud)
应用函数和绘图:
df1['diff'] = percCal(df1['A'], df1['B'])
df1['diff'].plot(kind='density')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1727 次 |
| 最近记录: |