Python 计算dataframe列中字典值的字符数

Python 计算dataframe列中字典值的字符数,python,json,pandas,dataframe,count,Python,Json,Pandas,Dataframe,Count,下载Facebook数据后,他们会提供json文件和您的帖子信息。我用pandas阅读json和数据帧。现在我想数一数我写的每一篇文章的人物。帖子位于:df['data']中,类似:[{'post':'Happy bday Raul'}] 我希望输出是:Happy bday Raul的字符数,在本例中为15,在从[{'post':'Morning'}]开始的早晨中为7 列为具有以下格式的日期和数据: Date Data 01-01-2020 *[{'post': 'Morni

下载Facebook数据后,他们会提供json文件和您的帖子信息。我用pandas阅读json和数据帧。现在我想数一数我写的每一篇文章的人物。帖子位于:df['data']中,类似:[{'post':'Happy bday Raul'}]

我希望输出是:Happy bday Raul的字符数,在本例中为15,在从[{'post':'Morning'}]开始的早晨中为7

列为具有以下格式的日期和数据:

Date        Data
01-01-2020    *[{'post': 'Morning'}]*
10-03-2020    *[{'post': 'Happy bday Raul'}]*
17-03-2020    *[{'post': 'This lockdown is sad'}]*
我试图通过这样做来计算这个[{'post':'Morning'}]的字符数

df['count']=df['data'].str.len()
但它不起作用,结果是1

我需要提取字典的值并进行len运算来计算字符数。输出将是:

Date        Data                                   COUNT 
01-01-2020    *[{'post': 'Morning'}]*               5
10-03-2020    *[{'post': 'Happy bday Raul'}]*       15
17-03-2020    *[{'post': 'This lockdown is sad'}]*  20
编辑:

习惯于口述

df11=df_post['data'].to_dict()
输出

{0: [{'post': 'Feliz cumpleaños Raul'}],
 1: [{'post': 'Muchas felicidades Tere!!! Espero que todo vaya genial y siga aún mejor! Un beso desde la Escandinavia profunda'}],
 2: [{'post': 'Hola!\nUna investigadora vendrá a finales de mayo, ¿Alguien tiene una habitación libre en su piso para ella? Many Thanks!'}],
 3: [{'post': '¿Cómo va todo? Se que muchos estáis o estábais por Galicia :D\n\nOs recuerdo, el proceso de Matriculación tiene unos plazos concretos: desde el lunes 13 febrero hasta el viernes 24 de febrero.'}]
}

您可以使用列表理解访问每行的post键的值,并使用str.len计算长度:

在一行代码中,它将如下所示:

df[1] = pd.Series([x['post'] for x in df[0]]).str.len()
这也会起作用,但我认为执行起来会比较慢:

df[1] = df[0].apply(lambda x: x['post']).str.len()
完整的可复制代码如下:

df = pd.DataFrame({0: [{'post': 'Feliz cumpleaños Raul'}],
 1: [{'post': 'Muchas felicidades Tere!!! Espero que todo vaya genial y siga aún mejor! Un beso desde la Escandinavia profunda'}],
 2: [{'post': 'Hola!\nUna investigadora vendrá a finales de mayo, ¿Alguien tiene una habitación libre en su piso para ella? Many Thanks!'}],
 3: [{'post': '¿Cómo va todo? Se que muchos estáis o estábais por Galicia :D\n\nOs recuerdo, el proceso de Matriculación tiene unos plazos concretos: desde el lunes 13 febrero hasta el viernes 24 de febrero.'}]
})
df = df.T
df[1] = [x['post'] for x in df[0]]
df[2] = df[1].str.len()
df
Out[1]: 
                                                   0  \
0                 {'post': 'Feliz cumpleaños Raul'}   
1  {'post': 'Muchas felicidades Tere!!! Espero qu...   
2  {'post': 'Hola!
Una investigadora vendrá a fi...   
3  {'post': '¿Cómo va todo? Se que muchos está...   

                                                   1    2  
0                             Feliz cumpleaños Raul   22  
1  Muchas felicidades Tere!!! Espero que todo vay...  112  
2  Hola!\nUna investigadora vendrá a finales de ...  123  
3  ¿Cómo va todo? Se que muchos estáis o está...  195  

显示更多代码。请提供预期的代码。显示中间结果与您预期的不同之处。我们应该能够复制和粘贴一个连续的代码块,执行该文件,并再现您的问题以及跟踪问题点的输出。这让我们可以根据您的测试数据和所需的输出来测试我们的建议。你有一本基本字典。从该条目中提取值并使用len。因为您没有发布代码,所以我们无法修复您的特定问题。@Prune我刚刚添加了代码以及我希望作为输出的内容。在读取输入数据帧并发布输出后,您可以对其执行df.to_dict操作吗?
df = pd.DataFrame({0: [{'post': 'Feliz cumpleaños Raul'}],
 1: [{'post': 'Muchas felicidades Tere!!! Espero que todo vaya genial y siga aún mejor! Un beso desde la Escandinavia profunda'}],
 2: [{'post': 'Hola!\nUna investigadora vendrá a finales de mayo, ¿Alguien tiene una habitación libre en su piso para ella? Many Thanks!'}],
 3: [{'post': '¿Cómo va todo? Se que muchos estáis o estábais por Galicia :D\n\nOs recuerdo, el proceso de Matriculación tiene unos plazos concretos: desde el lunes 13 febrero hasta el viernes 24 de febrero.'}]
})
df = df.T
df[1] = [x['post'] for x in df[0]]
df[2] = df[1].str.len()
df
Out[1]: 
                                                   0  \
0                 {'post': 'Feliz cumpleaños Raul'}   
1  {'post': 'Muchas felicidades Tere!!! Espero qu...   
2  {'post': 'Hola!
Una investigadora vendrá a fi...   
3  {'post': '¿Cómo va todo? Se que muchos está...   

                                                   1    2  
0                             Feliz cumpleaños Raul   22  
1  Muchas felicidades Tere!!! Espero que todo vay...  112  
2  Hola!\nUna investigadora vendrá a finales de ...  123  
3  ¿Cómo va todo? Se que muchos estáis o está...  195