这是我的数据框,我想将c和d列中的值转换为KB。 这里M代表兆字节,G代表技嘉。如何做到。
b c d
abc 12.8G 12.6G
def 2.67M 3.4G
ghi 12.5G 34.5M
jkl 12.1G 1.2G
答案 0 :(得分:0)
与.str
访问者的Dict映射将有所帮助,即
di = {'M':10**3,'G':10**6 }
df[['c','d']] = df[['c','d']].apply(lambda x : pd.to_numeric(x.str[:-1]) * x.str[-1].map(di)).astype(str) + 'KB'
b c d 0 abc 12800000.0KB 12600000.0KB 1 def 2670.0KB 3400000.0KB 2 ghi 12500000.0KB 34500.0KB 3 jkl 12100000.0KB 1200000.0KB
如果只需要整数,则使用
df[['c','d']].apply(lambda x : pd.to_numeric(x.str[:-1]) * x.str[-1].map(di)).astype(int)