python - NLTK FreqDist 到使用熊猫的表
问题描述
我有使用 NLTK 得到的频率分布:
[(('ingeniería', 'informática'), 30), (('tecnologías', 'información'), 26), (('sistemas', 'información'), 19), (('big', 'data'), 16), (('ingeniería', 'software'), 14), (('ingeniero', 'técnico'), 11), (('bases', 'datos'), 10), (('información', 'comunicación'), 10), (('tecnologías', 'información', 'comunicación'), 10), (('sistemas', 'operativos'), 9)]
我想将其转换为表格/数据框,最好使用熊猫。
解决方案
fdist = nltk.FreqDist( ... )
df_fdist = pd.DataFrame.from_dict(fdist, orient='index')
df_fdist.columns = ['Frequency']
df_fdist.index.name = 'Term'
print(df_fdist)
df_fdist.to_csv(...)
或者:
def cond_freq_dist(data):
""" Takes a list of tuples and returns a conditional frequency distribution as a pandas dataframe. """
cfd = {}
for cond, freq in data:
try:
cfd[cond][freq] += 1
except KeyError:
try:
cfd[cond][freq] = 1
except KeyError:
cfd[cond] = {freq: 1}
return pd.DataFrame(cfd).fillna(0)
推荐阅读
- javascript - 使用 Chart.js 显示比赛单圈时间和位置
- python - python中的频率与总数条形图
- installation - magento 设置错误:升级 - 元素“路由”:缺少子元素。预期是(资源)
- javascript - onClick 方法适用于第二次点击。但它应该在第一次点击时起作用
- excel - 所有行中的 Excel 查找值,而不仅仅是第一个匹配项
- elasticsearch - RestHighLevelClient 弹性搜索 Java 客户端需要更多时间进行搜索查询
- sql-server - 如何使用 T-SQL 将 Row 拆分为多列
- three.js - 合并形状的相同图像纹理
- regex - 正则表达式用于提取字符串中的数字而不是单词而不是用符号分隔?
- c++ - 我的问题是我们可以避免 if 条件吗?