将行转换为列 -> 第一列无法识别
Transforming rows to columns -> first column not recognized
我正在尝试从文本中提取表情符号计数,目前正在努力为输出列提供标题。
如果我尝试分配列,它只会识别一列(计数),而不是表情符号列本身,这是第一列,所以我认为问题出在那里?我以为将索引设置为 0 就可以解决这个问题,但显然我误解了这一点。
我是否需要将 df 转换为系列以识别第一列和第二列并能够命名它们? (让我们进入:columns=['emoji','count'
]
MWE:
import csv
import re
import pandas as pd
import emoji
import regex
from collections import Counter
def split_count(text):
emoji_list = []
data = regex.findall(r'\X', text)
for word in data:
if any(char in emoji.UNICODE_EMOJI['en'] for char in word):
emoji_list.append(word)
return emoji_list
df = pd.DataFrame([{'id':1432691762007400458,'created_at':"2021-08-31T13:08:28.000Z",'text':"9月1日㈬は…\n\n♦️18:50〜 山岸一生\n『練馬から変える!国会を創る!キックオフ集会』\nhttpstest\n\n♦️20:30~ 辻元清美\n#りっけんチャンネル\n「コロナ禍・五輪から見えた""おっさん政治""の実態」について\nhttpsxzt\n\n【テレビ】\n♦️19:30~ 玄葉光一郎\nBS-TBS「報道1930」",'author_id':951781409470889984},
{'id':1432687902148816898,'created_at':"2021-08-31T12:53:08.000Z",'text':"やはり別の地平であったか...\n\nコロナ禍五輪\n貴重な物資をなぜ捨てる?",'author_id':1227501971742937088}])
text = df['text']
emoji_list= []
for t in text:
emoji_list=emoji_list+split_count(t)
df_sa = pd.DataFrame((Counter(emoji_list)), index=[0])
df_t = df_sa.T
print(df_t)
当前结果:
0
2
2
♦️ 3
期望的结果
emoji count
2
2
♦️ 3
让我们修复您创建数据框的方式:
pd.DataFrame(Counter(emoji_list).items(), columns=['emoji', 'count'])
emoji count
0 2
1 2
2 ♦️ 3
我正在尝试从文本中提取表情符号计数,目前正在努力为输出列提供标题。
如果我尝试分配列,它只会识别一列(计数),而不是表情符号列本身,这是第一列,所以我认为问题出在那里?我以为将索引设置为 0 就可以解决这个问题,但显然我误解了这一点。
我是否需要将 df 转换为系列以识别第一列和第二列并能够命名它们? (让我们进入:columns=['emoji','count'
]
MWE:
import csv
import re
import pandas as pd
import emoji
import regex
from collections import Counter
def split_count(text):
emoji_list = []
data = regex.findall(r'\X', text)
for word in data:
if any(char in emoji.UNICODE_EMOJI['en'] for char in word):
emoji_list.append(word)
return emoji_list
df = pd.DataFrame([{'id':1432691762007400458,'created_at':"2021-08-31T13:08:28.000Z",'text':"9月1日㈬は…\n\n♦️18:50〜 山岸一生\n『練馬から変える!国会を創る!キックオフ集会』\nhttpstest\n\n♦️20:30~ 辻元清美\n#りっけんチャンネル\n「コロナ禍・五輪から見えた""おっさん政治""の実態」について\nhttpsxzt\n\n【テレビ】\n♦️19:30~ 玄葉光一郎\nBS-TBS「報道1930」",'author_id':951781409470889984},
{'id':1432687902148816898,'created_at':"2021-08-31T12:53:08.000Z",'text':"やはり別の地平であったか...\n\nコロナ禍五輪\n貴重な物資をなぜ捨てる?",'author_id':1227501971742937088}])
text = df['text']
emoji_list= []
for t in text:
emoji_list=emoji_list+split_count(t)
df_sa = pd.DataFrame((Counter(emoji_list)), index=[0])
df_t = df_sa.T
print(df_t)
当前结果:
0
2
2
♦️ 3
期望的结果
emoji count
2
2
♦️ 3
让我们修复您创建数据框的方式:
pd.DataFrame(Counter(emoji_list).items(), columns=['emoji', 'count'])
emoji count
0 2
1 2
2 ♦️ 3