首页 > 解决方案 > 根据单词词典创建列

问题描述

我有一组对应于数字的单词,例如:

word1, word2, word3 = 1
word4 = 2
word5, word6 = 3
word7, word8, word9 = 4
word10 = 5

我想创建一个数据框,其中有 2 列,一个是每个单词,另一个是对应的数字,例如:

 Word   Number
------- -------
 word1    1
 word2    1
 word3    1
 word4    2
 word5    3
 word6    3
 word7    4
 word8    4
 word9    4
 word10   5

如何创建字典并使用它在 Word 键和相应值的函数中创建列 Number

标签: pythonpandasdictionary

解决方案


这可能已经结束了,因为这个问题似乎不够清楚,但这是一种可能的方法:

  • 假设您有名称以“单词”开头的变量。
  • 而您想要的是从它们中创建一个 dict 以传递给 DataFrame 方法。
  • 并假设您将这个 py 文件作为脚本运行,这样__name__=='__main__'.

这是代码示例:

import sys
import pandas as pd

word1 = word2 = word3 = 1
word4 = 2
word5 = word6 = 3
word7 = word8 = word9 = 4
word10 = 5

main_module = sys.modules['__main__']

words = [
    v_name for v_name in main_module.__dict__ if v_name.startswith('word')]
# ['word1', 'word2', 'word3', 'word4', 'word5', 'word6', 'word7', 'word8', 'word9', 'word10']

numbers = [getattr(main_module, v_name) for v_name in words]
# [1, 1, 1, 2, 3, 3, 4, 4, 4, 5]

# Creating the Dict
d = {'Word': words, 'Number': numbers}
df = pd.DataFrame(data=d)
#     Word  Number
#0   word1       1
#1   word2       1
#2   word3       1
#3   word4       2
#4   word5       3
#5   word6       3
#6   word7       4
#7   word8       4
#8   word9       4
#9  word10       5

推荐阅读