根据唯一条目拆分具有相等值的行的值
Split value of a row with equal values based on the unique entry
我有一个如下所示的数据框:
Name T1 T2 alpha
A 10 3 30
A 11 5 Nan
A 13 5 Nan
B 5 2 7
B 3 1 Nan
但是需要将 alpha
列分成相等的部分以替换 Name
列中每个唯一名称的 Nan
值,如下所示:例如 30
for [=对于存在 A
的相应行,16=] 变为 10
Name T1 T2 alpha
A 10 3 10
A 11 5 10
A 13 5 10
B 5 2 3.5
B 3 1 3.5
我尝试使用 explode
但它没有像我希望的那样工作,这里的任何想法都会有所帮助
这将完成工作:
df['alpha'] = (df['alpha'] / df['T2']).ffill()
输出:
Name T1 T2 alpha
0 A 10 3 10.0
1 A 11 5 10.0
2 A 13 5 10.0
3 B 5 2 3.5
4 B 3 1 3.5
有groupby
和transform
df['alpha'] = pd.to_numeric(df['alpha'],errors = 'coerce').fillna(0).groupby(df['Name']).transform('mean')
df
Out[50]:
Name T1 T2 alpha
0 A 10 3 10.0
1 A 11 5 10.0
2 A 13 5 10.0
3 B 5 2 3.5
4 B 3 1 3.5
我有一个如下所示的数据框:
Name T1 T2 alpha
A 10 3 30
A 11 5 Nan
A 13 5 Nan
B 5 2 7
B 3 1 Nan
但是需要将 alpha
列分成相等的部分以替换 Name
列中每个唯一名称的 Nan
值,如下所示:例如 30
for [=对于存在 A
的相应行,16=] 变为 10
Name T1 T2 alpha
A 10 3 10
A 11 5 10
A 13 5 10
B 5 2 3.5
B 3 1 3.5
我尝试使用 explode
但它没有像我希望的那样工作,这里的任何想法都会有所帮助
这将完成工作:
df['alpha'] = (df['alpha'] / df['T2']).ffill()
输出:
Name T1 T2 alpha
0 A 10 3 10.0
1 A 11 5 10.0
2 A 13 5 10.0
3 B 5 2 3.5
4 B 3 1 3.5
有groupby
和transform
df['alpha'] = pd.to_numeric(df['alpha'],errors = 'coerce').fillna(0).groupby(df['Name']).transform('mean')
df
Out[50]:
Name T1 T2 alpha
0 A 10 3 10.0
1 A 11 5 10.0
2 A 13 5 10.0
3 B 5 2 3.5
4 B 3 1 3.5