Pandas 转换数据场中整列的值
我有以下数据帧:Pandas 转换数据场中整列的值,pandas,dataframe,Pandas,Dataframe,我有以下数据帧: chr start_position end_position gene_name 0 Chr Position Ref Gene_Name 1 chr22 24128945 G nan 2 chr19 45867080 G ERCC2 3
chr start_position end_position gene_name
0 Chr Position Ref Gene_Name
1 chr22 24128945 G nan
2 chr19 45867080 G ERCC2
3 chr3 52436341 C BAP1
4 chr7 151875065 G KMT2C
5 chr19 1206633 CGGGT STK11
我想将整个“结束位置”列转换为包含“开始位置”+len(“结束位置”)的值,结果应该是:
chr start_position end_position gene_name
0 Chr Position Ref Gene_Name
1 chr22 24128945 24128946 nan
2 chr19 45867080 45867081 ERCC2
3 chr3 52436341 52436342 BAP1
4 chr7 151875065 151875066 KMT2C
5 chr19 1206633 1206638 STK11
我写了以下脚本:
patient_vcf_to_df.apply(pd.to_numeric, errors='ignore')
patient_vcf_to_df['end_position'] = patient_vcf_to_df['end_position'].map(lambda x: patient_vcf_to_df['start_position'] + len(x))
但我得到了一个错误:
TypeError:必须是str,而不是int
有人知道我如何解决这个问题吗
非常感谢 首先,我读取您的CSV的方式是,
0
行将成为标题(列名):
要获得以下DF:
Chr Position Ref Gene_Name
0 chr22 24128945 G NaN
1 chr19 45867080 G ERCC2
2 chr3 52436341 C BAP1
3 chr7 151875065 G KMT2C
4 chr19 1206633 CGGGT STK11
作为积极的副作用:
In [99]: df.dtypes
Out[99]:
chr object
position int64 # <--- NOTE
ref object
gene_name object
dtype: object
要确保position
列为数字数据类型,请执行以下操作:
df['position'] = pd.to_numeric(df['position'], errors='coerce')
然后:
In [101]: df['end_position'] = df['position'] + df['ref'].str.len()
In [102]: df
Out[102]:
chr position ref gene_name end_position
0 chr22 24128945 G NaN 24128946
1 chr19 45867080 G ERCC2 45867081
2 chr3 52436341 C BAP1 52436342
3 chr7 151875065 G KMT2C 151875066
4 chr19 1206633 CGGGT STK11 1206638
为什么我得到
TypeError:ufunc'add'没有包含签名类型匹配的循环dtype('@pyd,在您的情况下,position
列很可能有string(object
)dtype…是的,如何转换that@cᴏʟᴅsᴘᴇᴇᴅ, 谢谢!:)圣诞快乐,新年快乐!:-)@Bella,errors='ignore'
-忽略那些无法转换为数字的值,因此,如果列中至少有一个这样的值,则您将拥有数据类型:object
。。。
df['position'] = pd.to_numeric(df['position'], errors='coerce')
In [101]: df['end_position'] = df['position'] + df['ref'].str.len()
In [102]: df
Out[102]:
chr position ref gene_name end_position
0 chr22 24128945 G NaN 24128946
1 chr19 45867080 G ERCC2 45867081
2 chr3 52436341 C BAP1 52436342
3 chr7 151875065 G KMT2C 151875066
4 chr19 1206633 CGGGT STK11 1206638