将元组转换为熊猫数据框

时间:2021-06-30 20:23:43

标签: python pandas dataframe tuples

假设我们有以下元组

    S=({'country':[('India')],'state':[('Telangana')],'city':[('Hyderabad'),('Vizag')]}, {'date':[{'year': 2021, 'month':10}]})
    
    <class 'tuple'>
    

我们可以将其转换为数据帧并将日期部分转换为变量吗

    df = key      value
         country  India
         state    Telangana
         city     Hyderabad
         city     Vizag
         
    Date = {'date':[{'year': 2021, 'month':10}]}

我试过 pd.DataFrame(json.loads(json.dumps(s))) 但它不干净

2 个答案:

答案 0 :(得分:1)

对于第一部分,您可以尝试:

pd.Series(S[0]).explode()

结果:

country    India    
state      Telangana
city       Hyderabad
city       Vizag    
dtype: object

如果你需要一个数据框,你可以使用:

df = pd.DataFrame(pd.Series(S[0]).explode().reset_index().values, columns=['key', 'value'])

结果:

print(df)

       key      value
0  country      India
1    state  Telangana
2     city  Hyderabad
3     city      Vizag

对于 Date 的第二部分,您可以使用:

Date = S[1]

结果:

print(Date)

{'date': [{'year': 2021, 'month': 10}]}

答案 1 :(得分:0)

对于 Date 部分,您可以尝试

Date = S[1]
print(Date)
{'date': [{'year': 2021, 'month': 10}]}

至于问题的第一部分,您可能会发现以下代码并不完美,但可以轻松对其进行编辑以完美匹配所需的输出。

df = pd.DataFrame(
    {k:pd.Series(v) for k, v in dict(S[0]).items()}
).transpose()
print(df)
               0      1
country      India    NaN
state    Telangana    NaN
city     Hyderabad  Vizag

有关详细信息,请参阅this post