我有一组数据框,其中一列包含一个分类变量.我想将它转换为几个虚拟变量,在这种情况下我通常会使用get_dummies.
会发生什么是get_dummies查看每个数据帧中可用的数据以找出有多少类别,从而创建适当数量的虚拟变量.但是,在我现在正在工作的问题中,我实际上事先知道可能的类别是什么.但是,当单独查看每个数据框时,并非所有类别都必须出现.
我的问题是:有没有办法传递get_dummies(或等效函数)类别的名称,这样,对于没有出现在给定数据框中的类别,它只是创建一个0的列?
会有这样的东西:
categories = ['a', 'b', 'c']
cat
1 a
2 b
3 a
Run Code Online (Sandbox Code Playgroud)
成为这个:
cat_a cat_b cat_c
1 1 0 0
2 0 1 0
3 1 0 0
Run Code Online (Sandbox Code Playgroud) 我是新手使用pandas并且正在编写一个脚本,我在数据框中读取,然后对某些列进行一些计算.
有时我会有一个名为"Met"的专栏:
df = pd.read_csv(File, sep='\t', compression='gzip', header=0, names=["Chrom", "Site", "coverage", "Met"])
Run Code Online (Sandbox Code Playgroud)
Othertimes我会:
df = pd.read_csv(File, sep='\t', compression='gzip', header=0, names=["Chrom", "Site", "coverage", "freqC"])
Run Code Online (Sandbox Code Playgroud)
我需要使用"Met"列进行一些计算,所以如果它不存在,我将需要使用以下方法计算它:
df['Met'] = df['freqC'] * df['coverage']
Run Code Online (Sandbox Code Playgroud)
有没有办法检查数据框中是否存在"Met"列,如果没有添加它?
我有一个以下格式的数据框
col_1, col_2, col_3
1, 2, 3
2, 3, 4
2, 3, 5
Run Code Online (Sandbox Code Playgroud)
我正在尝试检查数据框是否有一组列,如果没有,我想将它们创建为数据框中的新列
cols_to_check = ['col_1', 'col_2', 'col_6', 'col_9']
Run Code Online (Sandbox Code Playgroud)
为此,我想继续创建col_6,col_9因为它们不存在于数据框中。
最终输出:
col_1, col_2, col_3, col_6, col_9
1, 2, 3, 0, 0
2, 3, 4, 0, 0
2, 3, 5, 0, 0
Run Code Online (Sandbox Code Playgroud)