我有一个instagram帖子列表,并且我试图将所有以@开头的单词从描述中删除(该帖子的评论),以便我可以将讨论该话题的每个人的网络图放在一起标签。
数据框最终非常简单。我有df2的图片(正好是我正在使用的列)。
由于我没有10位代表,因此我无法发布图片,但这是链接-https://i.stack.imgur.com/IGRs0.png
昨天我通过使用str.split()创建了一个新列,将描述分成每个单词的列表,然后使用lambda遍历该列,并从每个列表中删除了每个单词,从而成功地做到了这一点不是以@开头。很棒。
然后,今天我又用同一来源的新csv再次执行此操作,但出现错误-“ TypeError:'float'对象不可迭代”
df = pd.read_csv("import instagram hashtag.csv")
df.drop_duplicates(subset='id', keep='first', inplace=False)
df['username'] = ('@' + df['username'])
df2 = df[['username', 'pubDate', 'id', 'description']]
#creating a column 'listsplit' that has lists of just the @ people from 'Text'
df2['listsplit'] = df2['description'].str.split().apply(lambda x: [i for i
in x if i.startswith('@')])
# creating new columns that just have one @ per column
df2 = pd.concat([df2,df2['listsplit'].apply(pd.Series)], axis=1)
#creating the csv
df2.to_csv('@ list from instagram.csv')
错误是与lambda行有关的。
同样,昨天它起作用了,而今天却没有。我想我需要在做str.split()之前进行一些步骤以标准化数据并进行处理,以便它不会创建浮点数,但是我对此真的很陌生,也不知道。
在运行该行之前是否可以放入某些东西,以确保我不会得到将列表转换为float对象的东西?还是有一种更简单的方法?
谢谢,很抱歉,如果这是一个简单的问题。我真的曾尝试到处搜寻,却迷路了。
答案 0 :(得分:0)
在拆分之前,只需将“说明”列转换为字符串类型即可。
df2['description'] = df2['description'].astype(str)