我想以串列的形式輸入并將它們連接成字串。如何將輸出存盤為資料框列?
輸入X是一個資料框,列名是des:
X['des'] =
[5, 13]
[L32MM, 4MM, 2]
[724027, 40]
[58, 60MM, 36MM, 0, 36, 3]
[8.5, 45MM]
[5.0MM, 44MM]
[10]
這是我的代碼:
def clean_text():
for i in range(len(X)):
str1 = " "
print(str1.join(X['des'][i]))
m = clean_text
m()
這是我的輸出,但如何將其作為資料框?
5 13
L32MM 4MM 2
724027 40
58 60MM 36MM 0 36 3
8.5 45MM
5.0MM 44MM
10
uj5u.com熱心網友回復:
請注意,在 pandas 中進行迭代是一種反模式。只要有可能,就使用 DataFrame 和 Series 方法一次對整個列進行操作。
Series.str.join (受到推崇的)
X['joined'] = X['des'].str.join(' ')
輸出:
des joined
0 [5, 13] 5 13
1 [L32MM, 4MM, 2] L32MM 4MM 2
2 [724027, 40] 724027 40
3 [58, 60MM, 36MM, 0, 36, 3] 58 60MM 36MM 0 36 3
4 [8.5, 45MM] 8.5 45MM
5 [5.0MM, 44MM] 5.0MM 44MM
6 [10] 10
回圈(不推薦)
迭代 numpy 值并使用
DataFrame.loc以下方法賦值:for i, des in enumerate(X['des'].to_numpy()): X.loc[i, 'loop'] = ' '.join(des)或通過
DataFrame.itertuples以下方式迭代:for row in X.itertuples(): X.loc[row.Index, 'itertuples'] = ' '.join(row.des)或通過
DataFrame.iterrows以下方式迭代:for i, row in X.iterrows(): X.loc[i, 'iterrows'] = ' '.join(row.des)
輸出:
des loop itertuples iterrows
0 [5, 13] 5 13 5 13 5 13
1 [L32MM, 4MM, 2] L32MM 4MM 2 L32MM 4MM 2 L32MM 4MM 2
2 [724027, 40] 724027 40 724027 40 724027 40
3 [58, 60MM, 36MM, 0, 36, 3] 58 60MM 36MM 0 36 3 58 60MM 36MM 0 36 3 58 60MM 36MM 0 36 3
4 [8.5, 45MM] 8.5 45MM 8.5 45MM 8.5 45MM
5 [5.0MM, 44MM] 5.0MM 44MM 5.0MM 44MM 5.0MM 44MM
6 [10] 10 10 10
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/369022.html
上一篇:洗掉資料框中的特定行
