1
我有一个数据帧,看起来像这样:提取元组成排的熊猫数据帧
function_name argument A B
func1 (func1_arg1, func1_arg2) value_a1 b
func2 (func2_arg1,) value_a2 b
func3 (func3_arg1, func3_arg2, func3_arg3) value_a3 b
,我希望它看起来像这样:
function_name argument A B
func1 func1_arg1 value_a1 b
func1 func1_arg2 value_a1 b
func2 func2_arg1 value_a2 b
func3 func3_arg1 value_a3 b
func3 func3_arg2 value_a3 b
func3 func3_arg3 value_a3 b
这将是一个明确的方法实现它? 在交互式的Python模式,我试图做以下几点:
import pandas as pd
D = {'function_name': ['func1', 'func2', 'func3'],
'argument': [('func1_arg1', 'func1_arg2'),
('func2_arg1',),
('func3_arg1', 'func3_arg2', 'func3_arg3')],
'A': ['value_a1', 'value_a2', 'value_a3'],
'B': 'b'}
data_frame = pd.DataFrame(D)
multiplicity = data_frame.argument.apply(len)
new_index = data_frame.function_name.repeat(multiplicity).index
new_data_frame = data_frame.reindex(new_index)
后来我发现,为了得到,让我与元组的工作,我已经通过调用该reset_index(drop=True)
到索引重置索引new_data_frame。换句话说,所有这些看起来相当丑陋和愚蠢。有没有简洁的方法可以解决这个问题?
哇完美!但关于原始参数列上方的'0'?我想保存它的名字。我的意思是我知道我可以改变它,但是可以做'飞行',可以这么说吗? – BigBear
更新了我的答案 – Dark
如果您发现我的答案有帮助,请接受它,并在可能的情况下使用upvote。 – Dark