考慮一個示例資料框
df11 = pd.DataFrame({'A': ['1' '_' '2']})
我想拆分列值以在相應的行中列出并轉換為整數。我正在使用下面的代碼,輸出值是字串的形式。我怎樣才能轉換成整數
df11["Timetaken"] = df11['A'].str.split('_')
我的當前輸出列如下

我想將值字串轉換為整數或浮點數
uj5u.com熱心網友回復:
使用串列理解,只需添加:
[int(x) for x in df11['A'].str.split('_')]
這會給你一個整數串列。
對于編輯過的問題,您可以使用更改這些值的型別
df11['Timetaken'] = df11['Timetaken'].apply(lambda x: [int(y) for y in x])
uj5u.com熱心網友回復:
您可以使用expand=Truethen useastype和 useagg如下:
作為 int
>>> df['Timetaken'] = df11['A'].str.split('_', expand=True).astype(int).apply(lambda x: x.dropna().tolist(), axis=1)
作為 float
>>> df['Timetaken'] = df11['A'].str.split('_', expand=True).astype(float).apply(lambda x: x.dropna().tolist(), axis=1)
>>> df
Timetaken
0 [9.0, 6.0, 36.0]
1 [3.0, 1.0]
2 [9.0, 2.0]
3 [6856.0, 4870.0]
4 [6864.0]
5 [6873.0]
uj5u.com熱心網友回復:
您只能像這樣使用熊貓方法:
df = pd.DataFrame(
{
"Timetaken": [
"9.0_6.0_36.0",
"3.0_1.0",
"9.0_2.0",
"6856.0_4870.0",
"6864.0",
"6873.0",
]
}
)
df["Timetaken"] = (
df["Timetaken"]
.str.split("_")
.explode()
.astype("float")
.astype("int")
.groupby(level=0)
.apply(list)
)
這將:
split弦- 將它們分解成單獨的行
- 將它們轉換為數字 (
.astype('float').astype('int')) - 最后把它們放回串列 (
.groupby(...).apply(...))
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/331594.html
上一篇:引數中帶有變數名的函式
