如何用1和0替换列值?

2024-04-25 23:21:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我的dataframe中有一个列,它有字符串值,如图1所示。你知道吗

enter image description here

我想做的是用1替换0和其他字段中的所有nan值(不管其他字段是字符串还是int) 我试过了

func_lambda = lambda x: 1 if any(dataframe['Colum'].values != 0) else 0

但t将所有列替换为1。你知道吗

这是我的测向头你知道吗

datacol.head(20)
Out[77]: 
0                          nan
1                   4500856427
2                      4003363
3                          nan
4                      16-4989
5                          nan
6                          nan
7              WVE-78686557032
8                          nan
9                   4501581113
10    D4-SC-0232737-1/G1023716
11                         nan
12                         nan
13                  4502549104
14                         nan
15                         nan
16                         nan
17                    IT008297
18                   15\036628
19                   299011667
Name: Customer_PO_Number, dtype: object

Tags: lambda字符串dataframeifanynanouthead
2条回答

检查此项:

import pandas as pd

df = pd.DataFrame({"Customer_PO_Number":
                       ['nan','4500856427','4003363','nan','16 - 4989','nan','nan','WVE - 78686557032',
                        'nan','4501581113','D4 - SC - 0232737 - 1 / G1023716','nan','nan','4502549104',
                        'nan','nan','nan','IT008297','15\03662','8','299011667']})


df.replace('nan', 0, inplace=True)  # for replacing nan to 0

df[df != 0] = 1     # for replacing others to 1
print(df)

它将提供如下输出:

   Customer_PO_Number
0                   0
1                   1
2                   1
3                   0
4                   1
5                   0
6                   0
7                   1
8                   0
9                   1
10                  1
11                  0
12                  0
13                  1
14                  0
15                  0
16                  0
17                  1
18                  1
19                  1
20                  1

希望对你有帮助!:)

可以使用布尔测试并将结果转换为整数:

(df['Customer_PO_Number'] == 'nan').astype(int)

输出:

0     1
1     0
2     0
3     1
4     0
5     1
6     1
7     0
8     1
9     0
10    0
11    1
12    1
13    0
14    1
15    1
16    1
17    0
18    0
19    0
20    0
Name: Customer_PO_Number, dtype: int32

如果“南”真的是np.nan公司然后可以使用isnull

df['Customer_PO_Number'].isnull().astype(int)

相关问题 更多 >

    热门问题