'AttributeError: 'int' object has no attribute 'split' for pandas
AttributeError: 'int' object has no attribute 'split'
Data is :
print(df)
Content Page no
0 My name is mark 3
1 My name is jeff 3
2 My name is bill 3
The code is :
df['doc_len'] = df['Content'].apply(lambda words: len(words.split()))
The error it's returning is :
AttributeError Traceback (most recent call last)
<ipython-input-26-7d2f1de16b3d> in <module>
----> 1 df['doc_len'] = df['Content'].apply(lambda words: len(words.split()))
~\t5\lib\site-packages\pandas\core\series.py in apply(self, func, convert_dtype, args, **kwds)
4136 else:
4137 values = self.astype(object)._values
-> 4138 mapped = lib.map_infer(values, f, convert=convert_dtype)
4139
4140 if len(mapped) and isinstance(mapped[0], Series):
pandas\_libs\lib.pyx in pandas._libs.lib.map_infer()
<ipython-input-26-7d2f1de16b3d> in <lambda>(words)
----> 1 df['doc_len'] = df['Content'].apply(lambda words: len(words.split()))
AttributeError: 'int' object has no attribute 'split'
The Content column is object type and it's returning int object has no attribute split
Solution 1:[1]
You can try:
via str.split()
and str.len()
:
df['doc_len']=df['Content'].str.split().str.len()
OR
via str.count()
and then add 1:
df['doc_len']=df['Content'].str.count(' ')+1
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 |