我正在尝试替换行中长度为>;的所有值;第一个非零值为0。如果行的长度为0,则将其替换为float 0.0
这是预期的输入:
VOL1 VOL2 D
0 1 3
21 21
19 0 0
18 0
这是预期输出:
VOL1 VOL2 D
1 1 1
21 21 0.0
19 19 19
18 18 0.0
到目前为止,我一直在尝试:
import pandas as pd
import numpy as np
data = {
'VOL1':[0, 21, 19, 18],
'VOL2':[1, 21, 0, 0],
}
# Create DataFrame
df = pd.DataFrame(data)
df['D'] = [3,"",0,""]
#get first nonzero
first_nonzero_df = df[df!=0].cumsum(axis=1).min(axis=1)
if df.isnull().any(axis=1):
df.any(axis=1).replace(df, first_nonzero_df)
我不清楚我在这里做错了什么,非常感谢您的帮助。谢谢
输出:
IIUC,试试:
相关问题 更多 >
编程相关推荐