在熊猫中按数据类型处理数据

时间:2020-02-15 18:32:51

标签: python pandas dataframe data-science

我有一个DataFrame,其中包含必须处理的int和str数据。

我想将每个单元格中的文本和数值分成不同的列,以便可以对数值数据进行计算。

我的专栏与此类似:

Showing A Snippet Of Dataframe.

我已经阅读了有关通过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     

2 个答案:

答案 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来满足您的特定需求