繁体   English   中英

基于 dataframe 中的另一列创建新列序列

[英]Creating a new column sequence based on another column within a dataframe

我有一个 dataframe Outfall ,它在['Head']列中有一个序列。 目标是创建另一个相对于['Head']列,称为['OHead'] ,一旦匹配某个值,它就会启动一个新序列。 我没有任何问题应用 lamda function 根据条件创建新列['OHead'] ,但我被捆绑然后启动与['Head']步长相同的新序列。

To = 1.34
Head = np.linspace(0,4,49)
Outfall = pd.DataFrame(Head, columns=['Head'])
Outfall['OHead'] = Outfall['Head'].apply(lambda x: 0 if x <= To else i * 0.83 for i in range(1))

lamda 语句中的列表理解显然不起作用,但试了一下,认为这可能是最好的方法。

预期的结果是 dataframe,如下所示:

        Head         OHead
0   0.000000      0.000000
1   0.083333      0.000000
2   0.166667      0.000000
3   0.250000      0.000000
...n...      
15  1.250000      0.000000
16  1.333333      0.000000
17  1.416667      0.083333
18  1.500000      0.166667
19  1.583333      0.250000
20  1.666667      0.333333
21  1.750000      0.416667
...n...

使用...n... 作为 dataframe 的 rest 的占位符。

国际大学联合会,

data = Outfall[Outfall < To].dropna().tail(1).reset_index(drop=True).at[0,'Head']
Outfall['Head'].apply(lambda x: 0 if x <= data else x - data)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM