将每个元素除以2,它应该忽略“字符串”值

时间:2019-12-03 16:10:47

标签: python pandas

将每个元素除以2,它应该忽略“字符串”值。最终结果应仅在熊猫数据框中显示

df=pd.DataFrame({'a':[3,6,9], 'b':[2,4,6], 'c':[1,2,3]}) 
print(df)

1 个答案:

答案 0 :(得分:0)

您可以这样做:

我添加了一个带有字符串值的列进行演示

df=pd.DataFrame({'a':[3,6,9], 'b':[2,4,6], 'c':[1,2,3], 'd':['a', 'b', 'c']})

for i in list(df.keys()):
    try:
        df[i] = df[i]/2
    except(TypeError):
        df[i] = df[i]
print(df)

这给出了:

     a    b    c  d
0  1.5  1.0  0.5  a
1  3.0  2.0  1.0  b
2  4.5  3.0  1.5  c

如果您的列具有混合的整数和字符串类型:

df=pd.DataFrame({'a':[3,6,9, 'a'], 'b':[2,4,6, 8], 'c':[1,2,3,4], 'd':['a', 'b', 'c', 'd']})

for i in list(df.keys()):
    try:
        df[i] = df[i]/2
    except(TypeError):
        df[i] = df[i].astype(str)
        mynewlist = [int(s)/2 if s.isdigit() else s for s in list(df[i].values)]
        df[i] = mynewlist

print(df)

给出:

     a    b    c  d
0  1.5  1.0  0.5  a
1    3  2.0  1.0  b
2  4.5  3.0  1.5  c
3    a  0.5  0.5  d