如何根据pandas dataframe

时间:2018-03-24 03:43:51

标签: python pandas

假设我有一个pandas数据框,如下所示: col1 col2 0 A A60 1 B B23 2 C NaN 来自csv文件的数据来自。假设我想将'col2'的每个非缺失值更改为其前缀(即'A'或'B')。如果不编写for循环,我怎么能这样做?

预期的产出是 col1 col2 0 A A 1 B B 2 C NaN

3 个答案:

答案 0 :(得分:1)

.str [:1]只返回第一个字符

d = {'col1': ['A', 'B','C'], 'col2': ['A32', 'B60',np.nan]}
df = pd.DataFrame(data=d)
df['col2'] = df['col2'].str[:1]
df

出:

    col1    col2
0   A       A
1   B       B
2   C       NaN

答案 1 :(得分:0)

您也可以直接在列上使用您的pandas replace

# sample data
df = pd.DataFrame({'col1':['A','B','C'], 'col2':['A60','B23',np.nan]})

# remove numbers from col2
df['col2'] = df['col2'].str.replace('\d+','')

print(df)

  col1 col2
0   A   A
1   B   B
2   C   NaN

答案 2 :(得分:0)

您可能需要使用isnull() df['col2'] = df['col2'].apply(lambda x: str(x)[0] if not pd.isnull(x) else x)