python - 从 pandas DataFrame 中切出唯一的行以存储在单独的 DataFrame 中
问题描述
解决了:
# Split and save all unique parts to separate CSV
for unique_part in df['Part'].unique():
df.loc[df['Part'] == unique_part].to_csv(f'Part_{unique_part}.csv')
我有一张表格,其中包含零件的生产数据以及在生产过程中记录的变量。我需要为唯一的部分行切出所有列。IE 第 1 部分、第 2 部分和第 3 部分的列的所有列都被切片并放入单独的数据帧中。
格式:
零件 | 变量 1 | 变量 2 等
1-----------X----------------X
1-----------X----------------X
2-----------X----------------X
2-----------X----------------X
2-----------X----------------X
2-----------X----------------X
2-----------X----------------X
2-----------X----------------X
2-----------X----------------X
3-----------X---------------X
3-----------X---------------X
3-----------X---------------X
我已经尝试过创建一个字典来分组
dict = {k: v for k, v in df.groupby('Part')}
这不起作用,因为我无法以正确的格式从 dict 正确转换为 DataFrame
我还尝试创建一个变量来存储所有唯一的零件编号,我只是不知道如何循环通过主数据框来切出每个唯一的零件行部分
part_num = df['Part'].unique()
总之,我需要为每个具有唯一部件号 ID 的行集群创建包含所有变量列的单独数据框。
解决方案
您可以groupby
然后apply
将每个组变成一个字典列表,然后将 groupby 变成一个字典,其中每个键都是唯一Part
值。
就像是:
df = pd.DataFrame({
'Part': [1,1,1,3,3,2,2,2],
'other': ['a','b','c','d','e','f','g','h']
})
d = df.groupby('Part').apply(lambda d: d.to_dict('records')).to_dict()
print d
将打印
{1: [{'Part': 1, 'other': 'a'},
{'Part': 1, 'other': 'b'},
{'Part': 1, 'other': 'c'}],
2: [{'Part': 2, 'other': 'f'},
{'Part': 2, 'other': 'g'},
{'Part': 2, 'other': 'h'}],
3: [{'Part': 3, 'other': 'd'}, {'Part': 3, 'other': 'e'}]}
推荐阅读
- uwp - UWP 的 AR 库?
- batch-file - 如何从网络用户帐户中过滤主目录位置?
- android - Android AR场景形式垂直旋转
- applescript - 如何在 applescript 中使用参数运行 DiffMerge?
- jenkins-groovy - 如何在 Jenkins Post 块中定义代理/节点
- sql - Oracle SQL:如何计算区分大小写列的 AVG?
- wordpress - 在商品购物车数据之后在 Woocommerce 购物车中显示产品 ACF 自定义字段
- python - 为什么 list( ) 和 tuple( ) 在 python 中将字符串扩展为单独的字符,而 [ ... ] 和 ( ... , ) 没有
- ios - 如何在没有 Xcode 的情况下启用推送通知和后台模式
- javascript - 使用节点 js / javascript 过滤对象中的 ext 文件