如何将含逗号值的字典列表转换为Pandas DataFrame?
解决字典列表转Pandas DataFrame的问题
嘿,别担心,这个问题其实比你想的简单——你根本不需要手动去拆分那些带逗号的字符串!Pandas本身就能完美处理这种包含逗号的值,问题出在你之前可能用了错误的转换方式。
正确的解决方案步骤:
- 首先确保你已经导入了
pandas和datetime库(如果还没导入的话) - 直接用Pandas的
DataFrame()构造函数传入你的字典列表就行——它会自动识别每个字典的键作为列名,值作为对应行的内容,完全不会被值里的逗号干扰。 - 最后把日期列格式化成你想要的
mm-dd-yyyy格式就可以了。
完整代码示例:
import pandas as pd import datetime # 你的原始字典列表 data = [ {'Name':'Smith, John','Date of Birth':datetime.datetime(2016, 5, 10, 0, 0),'Email Address':'JSmith@so.com'}, {'Name':'Smith, Jane','Date of Birth':datetime.datetime(2010, 6, 5, 0, 0),'Email Address':'JSmith2@so.com'}, {'Name':'Doe, Monica','Date of Birth':datetime.datetime(2012, 10, 3, 0, 0),'Email Address':'MDoe@so.com'} ] # 直接转换为DataFrame df = pd.DataFrame(data) # 格式化日期列 df['Date of Birth'] = df['Date of Birth'].dt.strftime('%m-%d-%Y') # 查看结果 print(df)
执行后的输出:
Name Date of Birth Email Address 0 Smith, John 05-10-2016 JSmith@so.com 1 Smith, Jane 06-05-2010 JSmith2@so.com 2 Doe, Monica 10-03-2012 MDoe@so.com
为什么你之前的方法出错?
你提到尝试了多种拆分方法,应该是不小心把整个列表按逗号拆分了,这会破坏字典的键值对结构,导致Pandas无法正确识别列和行。而直接用pd.DataFrame()处理字典列表时,Pandas会逐个解析每个字典的键值,完全忽略值内部的逗号——因为逗号在这里只是字符串的一部分,不是数据的分隔符。
内容的提问来源于stack exchange,提问作者NLMDEJ
相关产品推荐
相关产品推荐

