给出json
个记录字符串,其中每个记录的“模式”不一致(例如,每个记录不具有完整的“列”集合):
s = """[{"a": 3, "b":[]}, {"a": 4, "b": [4]}, {"a": 5}]"""
大熊猫DataFrame
可以用以下字符串构造:
import pandas as pd
import json
json_df = pd.DataFrame.from_records(json.loads(s))
这将导致
a b
0 3 []
1 4 [4]
2 5 NaN
如何用空的NaN
值填充熊猫Series
列的所有list
实例?预期的结果DataFrame将是:
a b
0 3 []
1 4 [4]
2 5 []
我尝试了以下方法;没有一个起作用:
json_df[json_df.b.isna()] = [[]]*json_df[json_df.b.isna()].shape[0]
from itertools import repeat
json_df[json_df.b.isna()] = repeat([], json_df[json_df.b.isna()].shape[0])
import numpy as np
json_df[json_df.b.isna()] = np.repeat([], json_df[json_df.b.isna()].shape[0])
预先感谢您的考虑和答复。
答案 0 :(得分:0)
首先找到nan并替换为相同形状的数据
json_df.loc[json_df.b.isnull(), 'b'] = json_df.loc[json_df.b.isnull(), 'b'].apply(lambda x: [])
a b
0 3 []
1 4 [4]
2 4 []