首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将不同列中的值合并为python列表中的值

将不同列中的值合并为python列表中的值
EN

Stack Overflow用户
提问于 2016-02-12 23:13:33
回答 2查看 292关注 0票数 2

我有一份如下所示的清单。

代码语言:javascript
复制
Gamecode    rush    pass
23....89     347    
23....89             650
23....90     654    
23....90             230

代码在下面。

代码语言:javascript
复制
temp = {}
for row in combineddff.itertuples():
    temp={}
    if row[1] in ('RUSH', 'PASS'):
        temp['GameCode'] =  row[0]
        if row[1] == 'RUSH':
            temp['rush'] = row[10]
        else:
             temp['pass'] = row[10]

    else:
        continue
    templist.append(temp)

print templist
my_df = pd.DataFrame(templist)
my_df.to_csv('data/results_yards.csv', index=False, header=False)

我希望将templist中不同行的rush和pass值组合成一行,其中"GameCode“、"Rush”和"Pass“作为值。帮帮忙吧。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-13 00:19:09

如果没有值,我假设您的列是“None”。

代码语言:javascript
复制
game_code = 'GameCode'
pass_yds = 'PASS'
rush_yds = 'RUSH'

output_list = []
for row in combineddff.itertuples():
    if row[0] == game_code:
        if row[2] is not None: pass_yds = row[2]
        if row[1] is not None: rush_yds = row[1]
    else:
        output = (game_code, pass_yds, rush_yds)
        output_list.append(output)

# Flush the last group
output = (game_code, pass_yds, rush_yds)
output_list.append(output)

编辑:评论后

代码语言:javascript
复制
templist = [
    { 'GameCode': 'A', 'PASS': '1' },
    { 'GameCode': 'A', 'RUN': '2' },
    { 'GameCode': 'B', 'PASS': '3' },
    { 'GameCode': 'B', 'RUN': '4' },
]

merged = None
output_list = []

for t in templist:
    if merged is None:
        merged = t
    elif merged['GameCode'] == t['GameCode']:
        merged.update(t)
    else:
        output_list.append(merged)
        merged = t
票数 1
EN

Stack Overflow用户

发布于 2016-02-12 23:38:10

尝试使用pd.merge方法:

代码语言:javascript
复制
import pandas as pd

rush = pd.DataFrame({'Gamecode': [2389, 2390], 'rush': [347, 654]})
pss = pd.DataFrame({'Gamecode': [2389, 2390], 'pass': [650, 230]})

print(pd.merge(rush, pss, on='Gamecode'))

输出:

代码语言:javascript
复制
   Gamecode  rush  pass
0      2389   347   650
1      2390   654   230
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35373808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档