python - 熊猫从多列的行中获取新列(其中条目是列表)
问题描述
我有一本字典,我想把它变成一个数据框,然后将该数据框的一些列组合成一列。
我的字典是这样的:
mydict = {'Participants': {'source': ['1', '2', '3'],
'name': ['A', 'B', 'C'],
'Entry (1)': ['Address1', 'Address2', 'Address3'],
'Entry (2)': ['Number1', 'Number2', 'Number2'],
'Entry (3)': ['Start1', 'Start2', 'Start3']},
'Countries': {'DK': ['1', '2', '3'],
'UK': ['1', '3', '2'],
'CDN': ['3', '2', '1'],
'FR': ['1', '2', '3']}}
结果数据框如下所示:
df = pd.DataFrame(mydict)
东风:
Countries Participants
CDN [3, 2, 1] NaN
DK [1, 2, 3] NaN
Entry (1) NaN [Address1, Address2, Address3]
Entry (2) NaN [Number1, Number2, Number2]
Entry (3) NaN [Start1, Start2, Start3]
FR [1, 2, 3] NaN
UK [1, 3, 2] NaN
name NaN [A, B, C]
source NaN [1, 2, 3]
我有多个“条目(n)”列,其中包含每个参与者(df['Participants']['name']
)的“地址、编号和开始”信息。我现在需要的是一个附加列“条目”,它为每一行组合了Entry (1)
和Entry (2)
的信息Entry(3)
。由于条目的数量(Entry (n)
因数据源而异,因此我需要获取如下条目的数量:
entries = re.findall(r'Entry \(\d\)', str(mydict['Participants'].keys()))
这给我留下了所有条目的列表:['Entry (1)', 'Entry (2)', 'Entry (3)']
.
我最后想要的是这样的数据框:
Countries Participants
CDN [3, 2, 1] NaN
DK [1, 2, 3] NaN
Entry (1) NaN [Address1, Address2, Address3]
Entry (2) NaN [Number1, Number2, Number2]
Entry (3) NaN [Start1, Start2, Start3]
Entries Nan ['Address1\nNumber1\Start1', 'Address2\nNumber2\Start2', 'Address3\nNumber3\nStart3'] <<-- I need this
FR [1, 2, 3] NaN
UK [1, 3, 2] NaN
name NaN [A, B, C]
source NaN [1, 2, 3]
谁能告诉我如何实现这一目标的熊猫特定方法?
解决方案
看来你需要
s=pd.DataFrame(df.filter(like='Entry',axis=0).Participants.tolist()).apply('/n'.join).tolist()
df.loc['Entries','Participants']=s
df
Out[64]:
Participants Countries
CDN NaN [3, 2, 1]
DK NaN [1, 2, 3]
Entry (1) [Address1, Address2, Address3] NaN
Entry (2) [Number1, Number2, Number2] NaN
Entry (3) [Start1, Start2, Start3] NaN
FR NaN [1, 2, 3]
UK NaN [1, 3, 2]
name [A, B, C] NaN
source [1, 2, 3] NaN
Entries [Address1/nNumber1/nStart1, Address2/nNumber2/... NaN
请注意,您可以sort_index
在末尾添加
推荐阅读
- laravel - 是bug laravel,还是什么?hasMany 返回空数组
- python - 如何在烧瓶python中将“新的csv文件”保存到“文件名”中
- react-native - 如何修复构建失败的 React Native 应用程序?
- javascript - 如何在 SPA 上使用随机生成的 API 密钥?
- forms - 更新到 xamarin forms 5 导致调试速度非常慢
- android - ScrollView 错误,即使它有一个孩子
- jmeter - 根据示例响应中的 queryTime 断言
- bash - 提取两个字符之间的行的正则表达式
- c# - ASP.NET Core 5 MVC 用员工等级计算工资
- php - PHP imagejpeg() 不会立即覆盖图像文件