python - 数据框:将 python 列表转换为数据框组?
问题描述
我有一个清单
数据列表
[['mark', 1], ['tom', 2], ['mark', 3], ['mark', 4], ['tom', 5], ['stuart', 6]]
传递 data_list 值以在此处运行。
for name_list in data_list:
convertMerge(name_list)
还有一个函数,它接受 list 并将其转换为 df 并保存它。
def convertMerge(name_list):
df = pd.DataFrame([name_list],columns=['name','id'])
df.to_csv('names'.csv)
我正在尝试合并/附加/连接 df,如果它具有相同的name
.
(这必须发生在convertMerge
函数内部)。
结果输出应该有这样的df:
df with mark
mark.csv
name id
0 mark 1
1 mark 3
2 mark 4
df with tom
tom.csv
name id
0 tom 2
1 tom 5
df with stuart
stuart.csv`
name id
0 stuart 6
解决方案
试试这个df.groupby
:
>>> master_df = pd.DataFrame(data_list, columns = ['name', 'ID'])
>>> for key, sub_df in master_df.groupby('name'):
sub_df.reset_index(drop=True).to_csv(key + '.csv')
对于您的功能:
def convertMerge(name_list):
df = pd.DataFrame(name_list,columns=['name','id'])
for key, sub_df in df.groupby('name'):
sub_df.reset_index(drop=True).to_csv(key + '.csv')
convertMerge(data_list)
如果打印它看起来像这样:
>>> master_df = pd.DataFrame(data_list, columns = ['name', 'ID'])
>>> for key, sub_df in master_df.groupby('name', sort=False):
print(key + '.csv')
sub_df.reset_index(drop=True)
# output:
mark.csv
name ID
0 mark 1
1 mark 3
2 mark 4
tom.csv
name ID
0 tom 2
1 tom 5
stuart.csv
name ID
0 stuart 6
推荐阅读
- c# - MongoDB.Driver.Core 使用 LINQ 查找和更新
- javascript - 如何使用在节点 js 中不起作用的推送功能?
- azure - 使用 REST API 在订阅级别分配 Azure 蓝图
- google-chrome - 如何在移动设备上修复超过 4.0 秒的内容绘制
- kubernetes - 如何在 Kubernetes 中大量不活动的 Pod 中有效地使用 CPU?
- applescript - 我正在尝试使用 BigSur 上的苹果脚本保存办公文件,同时保存文件我获得了盛大的访问权限
- python - MATLAB `imagesc()` 函数或 python `plt.imshow()` 是否有 C# 等效项?即,在具有显式最小值/最大值的色阶上显示图像
- node.js - mongodb/mongoose 查找全部时返回空数组
- linux - 如何将 librt 和 libpthread 链接到 Yocto 中的新层?
- node.js - 我在建立关系 bwt 两个模型方面做错了什么,以及我如何插入数据