下面是 excel 文件
col1 col2
1 a,b,c
2 a
我正在将 excel 文件数据读入数据帧
df=pd.read_excel(excel_path, sheetname='data')
东风
col1 col2
0 1 a,b,c
0 2 a
dfj=df.to_json(orient="records")
东风
'[{"col1":1,"col2":"a,b,c"}]'
在这里我需要 dfj 输出是这样的
'{"col1":1,"col2":["a","b","c"]}'
有人可以帮我编码吗?
使用 Series.str.split
:
df["col2"] = df["col2"].str.split(",")
dfj = df.to_json(orient="records")
print (dfj)
[{"col1":1,"col2":["a","b","c"]}]
如果可能的话,由字符串填充多个列,需要拆分它们:
cols = df.select_dtypes('object').columns
df[cols] = df[cols].apply(lambda x: x.str.split(","))
dfj = df.to_json(orient="records")
或者创建用于拆分的列列表:
cols = ['col2', 'another col', ...]
df[cols] = df[cols].apply(lambda x: x.str.split(","))
dfj = df.to_json(orient="records")
如果需要删除第一个和最后一个[]
使用 strip
- .str
不是必需的,因为使用纯 python:
dfj = df.to_json(orient="records").strip('[]')
print (dfj)
{"col1":1,"col2":["a","b","c"]}
你去吧
import json
import pandas as pd
# json string
dfjs = '[{"col1":1,"col2":"a,b,c"}]'
# converting json string into json object
dfj = json.loads(dfjs)[0]
# converting col2 values into list of values
dfj["col2"] = dfj["col2"].split(",")
# converting json object into dataframe object
df = pd.DataFrame(dfj)
print(df)
输出:
col1 col2
0 1 a
1 1 b
2 1 c
在这里看到它的实际效果。