轉換成元組從衆多的列行的熊貓我有一本字典是這樣的:數據框中
data = {'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',
'types': [('func1_type1', 'func1_type2'),
('func2_type1',),
('func3_type1', 'func3_type2', 'func3_type3')]}
我想將其轉換成數據幀的大熊貓,並使它看起來像這樣:
function_name argument types A B
func1 func1_arg1 func1_type1 value_a1 b
func1 func1_arg2 func1_type2 value_a1 b
func2 func2_arg1 func2_type1 value_a2 b
func3 func3_arg1 func3_type1 value_a3 b
func3 func3_arg2 func3_type2 value_a3 b
func3 func3_arg3 func3_type3 value_a3 b
當它從here如下是否會有元組的一列,我會做到這一點:
import pandas as pd
data_frame = pd.DataFrame(data)
new_frame = data_frame.set_index(['function_name','A','B'])['argument'].apply(pd.Series).stack().to_frame('argument').reset_index().drop('level_3',1)
但是,如果我有幾列斑點,我該如何去做呢?
編輯:
似乎是與認可的解決方案有點問題。也就是說,如果存在一個完全由None
s組成的斑點列或只是空元組,則在形成new_frame
的過程中,它們將被丟棄。是否有可能讓大熊貓避免丟棄列。
最初的數據是這樣的:
data = {'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',
'types': [('func1_type1', 'func1_type2'),
('func2_type1',),
('func3_type1', 'func3_type2', 'func3_type3')],
'info': [(None, None), (None,), (None, None, None)]}
'信息' 列可能是[(),(),()],結果仍然是一樣的。
沒錯,看起來它就像魅力!非常感謝你的幫助! – BigBear
歡迎@bigbear – Dark
@Parfait感謝您指出我已更新答案 – Dark