如何将Dataframe列拆分为两部分并使用splitted value替换列

时间:2017-10-14 19:12:31

标签: python

如何将数据框列拆分为两部分,以便稍后将数据框列中的值替换为拆分值。 例如,我有一个数据框,如:

col1       col2
"abc"      "A, BC"
"def"      "AX, Z"
"pqr"      "P, R"
"xyz"      "X, YZ"

我想在之前提取值,并用提取的值替换该单元格。 因此,输出应如下所示:

col1   col2
abc    A
def    AX
pqr    P
xyz    X

我试图这样做:

df['col2'].apply(lambda x: x.split(',')[0])

但它给了我错误。请建议我如何获得所需的输出。

1 个答案:

答案 0 :(得分:0)

在这种情况下,您可以使用pandas apply方法,它们将使用矢量化函数。 它df.col2 = df.col2.str.split(', ').str[0] >>> df Out[]: col1 col2 0 abc A 1 def AX 2 pqr P 3 xyz X 也会更快。

Series

要在包含str字符串的.str.split(', ')上使用此字符,您应该在任何函数之前调用split属性。 有关详细信息,请参阅str

在上述解决方案中,请注意替换.str[0]的{​​{1}}。 .str.split(', ')[0]允许对分割结果进行分片,而只使用Series将获得public long generateID() { Random rnd = new Random(); char [] digits = new char[11]; digits[0] = (char) (rnd.nextInt(9) + '1'); for(int i=1; i<digits.length; i++) { digits[i] = (char) (rnd.nextInt(10) + '0'); } return Long.parseLong(new String(digits)); } 的索引0。