当等于

2024-04-19 09:06:01 发布

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

我有个奇怪的问题。当我比较两列值相等的列时,它的响应不相等,这是怎么回事?你知道吗

    df['manual_raw_value'][0:10]
    Out[12]: 
    0       2
    1      32
    2      59
    3    6635
    4       1
    5    5320
    6    1548
    7      34
    8      29
    9     854
    Name: manual_raw_value, dtype: int64

    df['raw_value'][0:10]
    Out[13]: 
    0        2
    1       32
    2       59
    3     6635
    4        1
    5     5320
    6     1548
    7       34
    8       29
    9    00Ô54

df['manual_raw_value'][0:10] == df['raw_value'][0:10]
Out[14]: 
0    False
1    False
2    False
3    False
4    False
5    False
6    False
7    False
8    False
9    False
dtype: bool

例如,第一个单元格在两列中都等于2


Tags: namefalsedfrawvalueoutmanualbool
1条回答
网友
1楼 · 发布于 2024-04-19 09:06:01

我认为有不同的数据类型-一个是str,另一个是int。你知道吗

您可以通过以下方式进行检查:

print (df.dtypes)

所以需要^{}如果需要转换列:

df['manual_raw_value'] = df['manual_raw_value'].astype(str)

DataFrame中的所有值转换为str

df = df.astype(str)

^{}中的参数dtype,如果需要将所有列转换为str

df = pd.read_csv('file', dtype=str)

或者可以指定列:

df = pd.read_csv('file', dtype={'manual_raw_value':str, 'raw_value':str})

相关问题 更多 >