Python 将熊猫列表拆分为不同的列并计算计数
我有一个包含列表元素的列名称ID的熊猫数据框架。因此,我想将列表列拆分为不同的列Python 将熊猫列表拆分为不同的列并计算计数,python,pandas,Python,Pandas,我有一个包含列表元素的列名称ID的熊猫数据框架。因此,我想将列表列拆分为不同的列 id partner_id ids 1 12 ["1","4","187275","187358","946475"] 2 12 ["1","191","28925","31441"] 3 16
id partner_id ids
1 12 ["1","4","187275","187358","946475"]
2 12 ["1","191","28925","31441"]
3 16 ["1","2","293915","1573130","293918"]
4 11 ["1","13","294064","1238496"]
5 16 ["1","153339","155025","155029"]
期望输出:
我所尝试的:
df2 = pd.DataFrame(df.parent_path.values.tolist(), index=df.index)
完整代码:
但它并没有像这里那样拆分列:我想您很接近了,只用于附加到原始列,用于提取列,然后在必要时将字符串转换为数字和最后重命名的列名称: 还需要通过json.loads将列表的字符串报告到列表:
我认为您很接近,仅用于附加到原始,用于提取列,然后在必要时将字符串转换为数字,以及最后重命名的列名称: 还需要通过json.loads将列表的字符串报告到列表:
@TomRon我已经在我的查询中添加了链接,先生@TomRon我已经在我的查询中添加了链接,先生!谢谢你的回答。它现在显示ValueError:无法将字符串转换为浮点:'[1,13,294266,294276,312828,1007738]'@AlwaysSNNY-您可以测试pd.DataFrame[json.loadsx for x in df.pop'ids'],index=df.index吗?谢谢您的回答。它现在显示ValueError:无法将字符串转换为浮点:'[1,13,294266,294276,312828,1007738]'@AlwaysSNNY-您可以在df.pop'ids']中测试pd.DataFrame[json.loadsx for x,index=df.index吗?
df2 = pd.DataFrame(df.parent_path.values.tolist(), index=df.index)
import pandas as pd
import numpy as np
pd.set_option('display.max_columns', 85)
pd.set_option('display.max_rows', 85)
df = pd.read_csv('../dataset/property_location_count.csv',low_memory=False)
df2 = pd.DataFrame(df.ids.values.tolist(), index=df.index)
import json
df = (df.join(pd.DataFrame([json.loads(x) for x in df.pop('ids')], index=df.index)
.astype(float)
.astype('Int64')
.rename(columns=lambda x: f'id{x+1}')))
print (df)
id partner_id id1 id2 id3 id4 id5
0 1 12 1 4 187275 187358 946475
1 2 12 1 191 28925 31441 NaN
2 3 16 1 2 293915 1573130 293918
3 4 11 1 13 294064 1238496 NaN
4 5 16 1 153339 155025 155029 NaN