如何将数据框列拆分为两部分,以便稍后将数据框列中的值替换为拆分值。 例如,我有一个数据框,如:
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])
但它给了我错误。请建议我如何获得所需的输出。
答案 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。