Pandas 如何识别数据框中的字符串

问题描述 投票:0回答:1

假设我有一个像这样的数据框:

import pandas as pd
import numpy as np
df = pd.DataFrame([[1, np.nan, 2],
                  [2, 3, 'I'],
                  [3, 4, 'II']], columns=['A', 'B', 'C'])
df

如何识别所有字符串排除空值,如果是罗马数字,则将其转换为与该罗马数字对应的整数?

我尝试

res = np.argwhere(df_pre.values.astype('str'))
来定位字符串的协调,但它包含空值。

python pandas numpy
1个回答
0
投票

您可以

map
type
获取这些值并与
str
进行比较:

df = pd.DataFrame([[1, np.nan, 2],
                  [2, 3, 'I'],
                  [3, 4, 'II']], columns=['A', 'B', 'C'])

df.map(type) == str

输出:

       A      B      C
0  False  False  False
1  False  False   True
2  False  False   True

获取整数索引:

np.argwhere(df.map(type) == str)

输出:

array([[1, 2],
       [2, 2]], dtype=int64)
© www.soinside.com 2019 - 2024. All rights reserved.