【发布时间】:2013-12-09 16:24:21
【问题描述】:
我是 python 新手,因为我通常在 R 中编写脚本,因此正在学习适应 Pandas 数据框和细微差别。
我有两个字典列表,我将它们转换为数据帧,因为我认为以这种格式使用会更容易。
df1= [{u'test': u'SAT Math', u'25th_percentile': None, u'75th_percentile': None, u'50th_percentile': None, u'mean': 404}, {u'test': u'SAT Verbal', u'25th_percentile': None, u'75th_percentile': None, u'50th_percentile': None, u'mean': 355}, {u'test': u'SAT Writing', u'25th_percentile': None, u'75th_percentile': None, u'50th_percentile': None, u'mean': 363}, {u'test': u'SAT Composite', u'25th_percentile': None, u'75th_percentile': None, u'50th_percentile': None, u'mean': 1122}, {u'test': u'ACT Math', u'25th_percentile': None, u'75th_percentile': None, u'50th_percentile': None, u'mean': None}, {u'test': u'ACT English', u'25th_percentile': None, u'75th_percentile': None, u'50th_percentile': None, u'mean': None}, {u'test': u'ACT Reading', u'25th_percentile': None, u'75th_percentile': None, u'50th_percentile': None, u'mean': None}, {u'test': u'ACT Science', u'25th_percentile': None, u'75th_percentile': None, u'50th_percentile': None, u'mean': None}, {u'test': u'ACT Composite', u'25th_percentile': None, u'75th_percentile': None, u'50th_percentile': None, u'mean': None}]
df2 = [{u'test': u'SAT Composite', u'mean': 1981}, {u'test': u'ACT Composite', u'mean': 29.6}]
然后我将这些作为数据框:
df1new = DataFrame(df1, columns=['test', '25th_percentile', 'mean', '50th_percentile','75th_percentile'])
df2new = DataFrame(df2)
现在,如果 'test' == "ACT Composite" 且 'mean' 为 None,我想替换 df1new 中的 'mean' 列的内容
我曾尝试使用 combine_first 方法,但我相信这需要数据帧的索引更加相似。 我也试过:
if df1new['test'] == "ACT Composite" and df1new['mean'] == None:
df1new['mean'] == df2new['mean']
以及 .replace() 变体。
任何建议将不胜感激! 先感谢您!
【问题讨论】: