假设我有一个列表:
l=['a','b','c']
Run Code Online (Sandbox Code Playgroud)
及其后缀列表:
l2 = ['a_1', 'b_1', 'c_1']
Run Code Online (Sandbox Code Playgroud)
我希望所需的输出为:
out_l = ['a','a_1','b','b_2','c','c_3']
Run Code Online (Sandbox Code Playgroud)
结果是上面两个列表的交错版本.
我可以编写常规for循环来完成这项工作,但我想知道是否有更多Pythonic方式(例如,使用list comprehension或lambda)来完成它.
我尝试过这样的事情:
list(map(lambda x: x[1]+'_'+str(x[0]+1), enumerate(a)))
# this only returns ['a_1', 'b_2', 'c_3']
Run Code Online (Sandbox Code Playgroud)
此外,对于一般情况需要做出哪些改变,即对于2个或更多列表,其中l2不一定是衍生物l?
我在 Pandas 中有一个非常简单的数据框,
testdf = [{'name' : 'id1', 'W': np.NaN, 'L': 0, 'D':0},
{'name' : 'id2', 'W': 0, 'L': np.NaN, 'D':0},
{'name' : 'id3', 'W': np.NaN, 'L': 10, 'D':0},
{'name' : 'id4', 'W': 75, 'L': 20, 'D':0}
]
testdf = pd.DataFrame(testdf)
testdf = testdf[['name', 'W', 'L', 'D']]
Run Code Online (Sandbox Code Playgroud)
看起来像这样:
| name | W | L | D |
|------|-----|-----|---|
| id1 | NaN | 0 | 0 |
| id2 | 0 | NaN | 0 |
| id3 | NaN …Run Code Online (Sandbox Code Playgroud) 我有2个数据帧
DF1
Cols/Rows A B C
0 A 50 150 200
1 B 200 250 300
2 C 350 400 450
Run Code Online (Sandbox Code Playgroud)
DF2
Cols/Rows A B C
0 A 50 150 200
1 B 200 300 300
2 C 370 400 450
Run Code Online (Sandbox Code Playgroud)
我的预期产量
Cols/Rows A A2 B B2 C C2
0 A 50 50 150 150 200 200
1 B 200 200 250 300 300 300
2 C 350 370 400 400 450 450
Run Code Online (Sandbox Code Playgroud)
我想用col和row方式创建新的数据框合并.我试图使用,merge()但它没有奏效
print(df2.merge(df1, how='left'))
Run Code Online (Sandbox Code Playgroud)