将一个系列拆分为多个 pandas 列
split a series into multiple pandas columns
我有一个 pandas 数据框,其中一列中有一个系列。结构如下:
Date Col1
2022-01-02 'Amt_Mean 2022.0\nAmt_Med 5.0\nAmt_Std 877.0\ndtype: float64'
2022-01-03 'Amt_Mean 2025.0\nAmt_Med 75.0\nAmt_Std 27.0\ndtype: float64'
我想重塑它以获得以下输出
Date Amt_Mean Amt_Med Amt_Std
2022-01-02 2022.0 5.0 877.0
2022-01-03 2025.0 75.0 27.0
我怎样才能做到这一点?我尝试了 df['Col1'][0][1]
这给了我第一个数量,我可以潜在地循环它,但似乎应该有一个更简单的(pythonic)方法来做到这一点。
谢谢!
进行一些字符串处理,将每个字符串转换为字典,将其转换为数据帧,并将其与原始字符串连接:
new_df = pd.DataFrame([dict(re.split(r'\s+', y) for y in x.split('\n')[:-1]) for x in df['Col1']])
df = pd.concat([df.drop('Col1', axis=1), new_df], axis=1)
输出:
>>> df
Date Amt_Mean Amt_Med Amt_Std
0 2022-01-02 2022.0 5.0 877.0
1 2022-01-03 2025.0 75.0 27.0
假设您有 pd.Series
个对象,我将使用链式 pd.concat
:
将它们连接起来
>>> pd.concat([df.Date, pd.concat([x for x in df.Col1], axis=1).T], axis=1)
Date Amt_Mean Amt_Med Amt_Std
0 2022-01-02 2022 5 877
1 2022-01-03 2025 75 27
假设您的数据如下:
df = pd.DataFrame([{'Date':'2022-01-02',
'Col1': pd.Series({'Amt_Mean': 2022, "Amt_Med": 5, "Amt_Std":877})},
{'Date':'2022-01-03',
'Col1': pd.Series({'Amt_Mean': 2025, "Amt_Med": 75, "Amt_Std":27})
}])
我有一个 pandas 数据框,其中一列中有一个系列。结构如下:
Date Col1
2022-01-02 'Amt_Mean 2022.0\nAmt_Med 5.0\nAmt_Std 877.0\ndtype: float64'
2022-01-03 'Amt_Mean 2025.0\nAmt_Med 75.0\nAmt_Std 27.0\ndtype: float64'
我想重塑它以获得以下输出
Date Amt_Mean Amt_Med Amt_Std
2022-01-02 2022.0 5.0 877.0
2022-01-03 2025.0 75.0 27.0
我怎样才能做到这一点?我尝试了 df['Col1'][0][1]
这给了我第一个数量,我可以潜在地循环它,但似乎应该有一个更简单的(pythonic)方法来做到这一点。
谢谢!
进行一些字符串处理,将每个字符串转换为字典,将其转换为数据帧,并将其与原始字符串连接:
new_df = pd.DataFrame([dict(re.split(r'\s+', y) for y in x.split('\n')[:-1]) for x in df['Col1']])
df = pd.concat([df.drop('Col1', axis=1), new_df], axis=1)
输出:
>>> df
Date Amt_Mean Amt_Med Amt_Std
0 2022-01-02 2022.0 5.0 877.0
1 2022-01-03 2025.0 75.0 27.0
假设您有 pd.Series
个对象,我将使用链式 pd.concat
:
>>> pd.concat([df.Date, pd.concat([x for x in df.Col1], axis=1).T], axis=1)
Date Amt_Mean Amt_Med Amt_Std
0 2022-01-02 2022 5 877
1 2022-01-03 2025 75 27
假设您的数据如下:
df = pd.DataFrame([{'Date':'2022-01-02',
'Col1': pd.Series({'Amt_Mean': 2022, "Amt_Med": 5, "Amt_Std":877})},
{'Date':'2022-01-03',
'Col1': pd.Series({'Amt_Mean': 2025, "Amt_Med": 75, "Amt_Std":27})
}])