3 回答

TA貢獻(xiàn)1843條經(jīng)驗 獲得超7個贊
如果我理解正確的話,這是一種方法:
pd.concat([
serie_1[lambda x: x != ''].reset_index(drop=True).rename('col1'),
serie_2[lambda x: x != ''].reset_index(drop=True).rename('col2')
], axis=1)
col1 col2
0 a d
1 b e
2 c f
3 NaN g
邏輯是:選擇非空條目(使用 lambda 表達(dá)式)。從 0 重新開始索引編號(使用重置索引)。設(shè)置列名(重命名)。創(chuàng)建一個寬表(合并函數(shù)中的 axis=1)。

TA貢獻(xiàn)1824條經(jīng)驗 獲得超6個贊
一種使用方式pandas.concat:
ss = [serie_1, serie_2]
df = pd.concat([s[s.ne("")].reset_index(drop=True) for s in ss], 1)
print(df)
輸出:
0 1
0 a d
1 b e
2 c f
3 NaN g

TA貢獻(xiàn)1859條經(jīng)驗 獲得超6個贊
在創(chuàng)建這樣的數(shù)據(jù)框之前,我會過濾掉空白值:
import pandas as pd
def filter_blanks(string_list):
return [e for e in string_list if e]
serie_1 = pd.Series(filter_blanks(['a','','b','c','','']))
serie_2 = pd.Series(filter_blanks(['','d','','','e','f','g']))
pd.concat([serie_1, serie_2], axis=1)
結(jié)果是:
0 1
0 a d
1 b e
2 c f
3 NaN g
添加回答
舉報