Python 如何将值列表转换为列名并作为变量输入到数据帧中?
我想将一系列值(定义为U区域)转换为列标题。例如,现代化_区域输出:A、B、C、D和希望函数通过生成列A、B、C和D来循环每个区域。理想情况下,该变量将替换最后一行中的“现代化_区域”,但python不接受该变量Python 如何将值列表转换为列名并作为变量输入到数据帧中?,python,pandas,Python,Pandas,我想将一系列值(定义为U区域)转换为列标题。例如,现代化_区域输出:A、B、C、D和希望函数通过生成列A、B、C和D来循环每个区域。理想情况下,该变量将替换最后一行中的“现代化_区域”,但python不接受该变量 modernization_list = pd.DataFrame(keyword_table['Modernization_Area'].unique().tolist()) modernization_list.columns = ['Modernization_Area']
modernization_list = pd.DataFrame(keyword_table['Modernization_Area'].unique().tolist())
modernization_list.columns = ['Modernization_Area']
x = range(len(modernization_list['Modernization_Area'].unique().tolist()))
for i in x:
modernization_area = modernization_list._get_value(i, 'Modernization_Area')
keyword_subset = keyword_table[keyword_table.Modernization_Area == modernization_area]
keywords = keyword_subset['Keyword'].tolist()
report_table['a'] = report_table.award_description.str.findall('({0})'.format('|'.join(keywords), flags=re.IGNORECASE)
帮助你并不容易,因为你的问题缺少很多信息。我假设hipotheticals
关键字表
和报告表
。事实上,我不知道我是否真的得到了你真正想要的。但我希望这段代码能有所帮助:
假设块:
supposed_keyword_table = pd.DataFrame({'Keyword': ['word1', 'word2', 'word3', 'word4', 'word5', 'word6', 'word7'], 'Modernization Area': ['A', 'B', 'C', 'D', 'A', 'B', 'D']})
supposed_report_table = pd.DataFrame({'Modernization Area': ['A', 'B', 'C', 'D'], 'Some Value': [1, 2, 3, 4]})
supposed_keyword_table
Keyword Modernization Area
0 word1 A
1 word2 B
2 word3 C
3 word4 D
4 word5 A
5 word6 B
6 word7 D
supposed_report_table
Modernization Area Some Value
0 A 1
1 B 2
2 C 3
3 D 4
现在,在假设之后,您可以做以下几点:
keyword_table_by_mod_area = supposed_keyword_table.groupby(['Modernization Area'])['Keyword'].apply(lambda x: '|'.join(x))
supposed_report_table = pd.merge(supposed_report_table, keyword_table_by_mod_area, on='Modernization Area', how='left')
supposed_report_table
Modernization Area Some Value Keyword
0 A 1 word1|word5
1 B 2 word2|word6
2 C 3 word3
3 D 4 word4|word7
您能否共享原始数据帧的外观以及所需数据帧的外观请参见,然后是您的问题,并将剪贴板粘贴到代码块中。始终以文本形式提供代码、数据、错误、当前输出和预期输出。如果相关,打印图像也可以。