假设我有一个像这样的数据框:
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'))
来定位字符串的协调,但它包含空值。
您可以
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)