我有一个DataFrame,其中包含必须处理的int和str数据。
我想将每个单元格中的文本和数值分成不同的列,以便可以对数值数据进行计算。
我的专栏与此类似:
我已经阅读了有关通过apply函数和applymap函数执行类似操作的信息,但是我无法设计这样的函数,因为我是熊猫新手。它基本上应该做-
def separator():
if cell has str:
Add str part to another column(Check column), leave int inplace.
else:
Add 'NA' to Check column
答案 0 :(得分:0)
您可以使用extract
和后跟to_numeric
来完成此操作:
import pandas as pd
df = pd.DataFrame({'a_mrk4': ['042FP', '077', '079', '1234A-BC D..EF']})
df[['a_mrk4', 'Check']] = df['a_mrk4'].str.extract(r'(\d+)(.*)')
df['a_mrk4'] = pd.to_numeric(df['a_mrk4'])
print(df)
输出:
a_mrk4 Check
0 42 FP
1 77
2 79
3 1234 A-BC D..EF
答案 1 :(得分:-1)
您可以使用正则表达式,假设您有一列(target_col),并且数据遵循模式数字和文本,那么您可以使用以下列
df.target_col.str.extractall(r'(/d)(/w)')
您可以调整re来满足您的特定需求