我尝试了许多不同的dataframe语句,但似乎无法通过pandas将此输出转换为csv格式。我想我犯了一个简单的错误,但我不知道到底是什么。它是nltk分类器的输出。下面是我的输出:
defaultdict(<type 'set'>, {'neg': set([3, 6, 8, 15, 21, 23, 38, 40, 44, 46, 47, 51, 52, 53, 55, 58, 62, 63, 64, 65, 66, 68, 70, 71, 72, 73, 74, 75, 76, 77, 78, 80, 81, 82, 84, 85, 86, 87, 88, 90, 91, 92, 94, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 114, 115]), 'neutral': set([50, 4, 5, 93, 95, 43, 12, 45, 14, 79, 49, 37, 67, 113, 59, 60, 29, 31]), 'pos': set([0, 1, 2, 7, 9, 10, 11, 13, 16, 17, 18, 19, 20, 22, 24, 25, 26, 27, 28, 30, 32, 33, 34, 35, 36, 39, 41, 42, 48, 54, 56, 57, 61, 69, 83, 89])})发布于 2015-04-18 18:26:17
不太清楚输出应该是什么,因为dict包含集合,但这应该可以工作:
pandas.DataFrame({k: list(v) for k, v in your_output.items()}).to_csv('yourfile.csv')发布于 2015-12-02 19:04:52
pd.DataFrame生成矩阵。如果您传递一个dict,它将从dict.keys()生成列,并为每个[i, col]元素分配第i个值dict[col][i]。这就是为什么你不能用不同值的长度来传递dict。
在你的任务中,你可以这样做:
data = pd.DataFrame(columns=dd.keys())
for col, indexes in dd.items():
for index in indexes:
data.loc[index, col] = 1
data.fillna(0) # fill other values with 0或
data = pd.DataFrame(columns=['sentiment'])
for col, indexes in dd.items():
for index in indexes:
data.loc[index, 'sentiment'] = col其中dd是nltk分类器的结果
https://stackoverflow.com/questions/29715733
复制相似问题