小编Ami*_*har的帖子

如何删除'.' 来自数据框中的列名?

我从csv文件中读取的数据帧具有这样的列名

abc.def, ewf.asd.fkl, qqit.vsf.addw.coil

我想删除'.' 从所有的名称,并将其转换为

abcdef, eqfasdfkl, qqitvsfaddwcoil.

我尝试使用sub命令, sub(".","",colnames(dataframe))但是此命令取出了每个列名的第一个字母,并且列名更改为

bc.def, wf.asd.fkl, qit.vsf.addw.coil

任何人都知道这样做的另一个命令.我可以逐个更改列名,但是我有很多文件,每个文件中有30个或更多列.

再次,我想删除"." 从所有的名字.我试图这样做,所以我可以使用"sqldf"命令,这些命令不能很好地处理"."

谢谢您的帮助

r

8
推荐指数
3
解决办法
9032
查看次数

在熊猫中将一列拆分为 3 列

我有一个名为的列Names,看起来像这样,我需要将它与不同的熊猫数据框中的其他列进行比较,该数据帧具有姓氏和名字,但不是像这样的首字母。我正在尝试将首字母从新列中的列中分离出来,使用空格作为分隔符,但可能需要对整个字符串执行此操作。我试过这个:

transpose_enron['lastname'], transpose_enron['firstname'], transpose_enron['middle initial'] = zip(*transpose_enron['Names'].apply(lambda x: x.split(' ', 1)))
Run Code Online (Sandbox Code Playgroud)

它给了我这个错误

“ValueError:需要超过 1 个值才能解包”

0                    ALLEN PHILLIP K
1                      BADUM JAMES P
2                 BANNANTINE JAMES M
8                      BELFER ROBERT
Run Code Online (Sandbox Code Playgroud)

关于如何做到这一点的任何想法。

string split multiple-columns dataframe pandas

5
推荐指数
2
解决办法
5418
查看次数

如何使用条件从numpy数组中删除特定行?

这是代码

a = np.array([[ 0,  1],
              [ 3, 11],
               [4,2]])
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的

a= a[a[0]>0,:]
Run Code Online (Sandbox Code Playgroud)

当我只有两个元素时,它可以正常工作,但除此之外,它还会引发错误。我试图做的是在第一列中,如果该值小于我需要删除整行的值。

所以预期的输出是

     ([ 3, 11],
     [4,2]])
Run Code Online (Sandbox Code Playgroud)

我希望有一个可以概括的解决方案,即使每个项目有两个以上元素,例如

    ([2,3,4,5],
     [8,2,4,6],
     [2,4,9,1],
     [5,3,2,0],)
Run Code Online (Sandbox Code Playgroud)

那么代码的应用将给出如下结果

    ([2,3,4,5],
     [8,2,4,6],
     [2,4,9,1],)
Run Code Online (Sandbox Code Playgroud)

有什么建议么。

arrays numpy subset

1
推荐指数
1
解决办法
1181
查看次数

左联接返回的行比预期的少?请提供您的理由,

以下是我的查询

  Select Count(*)
         from Table1 s
               left join Table2 d
                    ON  s.subjectid = d.subjectid
                    and s.PROJECTID = d.projectid
                    and s.SITEName = d.SITENAME
               left join Table3 dev
                    on s.subjectid = dev.subjectid
                    and s.projectid = dev.projectid
                    and s.siteid = dev.siteid
         Where s.isprod =1
         and   d.isprod =1
         and  dev.isprod = 1
         and s.projectid =107
      -- Output 301 ROWS
Run Code Online (Sandbox Code Playgroud)

现在,此查询返回给我301行,但是,如果我不使用Table3,那么联接将返回2203行,如下面的查询所示

         Select Count(*)
         from Table1 s
               left join Table2 d
                    ON  s.subjectid = d.subjectid
                    and s.PROJECTID = d.projectid
                    and s.SITEName = d.SITENAME
         Where s.isprod =1 …
Run Code Online (Sandbox Code Playgroud)

plsql left-join where

0
推荐指数
1
解决办法
1195
查看次数

标签 统计

arrays ×1

dataframe ×1

left-join ×1

multiple-columns ×1

numpy ×1

pandas ×1

plsql ×1

r ×1

split ×1

string ×1

subset ×1

where ×1