我有一个数据框,其中包含表示为字符串的数字,该数字使用逗号分隔符(例如150,000)。还有一些值用“-”表示。
我正在尝试将所有表示为字符串的数字转换为浮点数。 “-”将保持不变。
我当前的代码使用for循环迭代每个列和行,以查看每个单元格是否有逗号。如果是这样,它将删除逗号,然后将其转换为数字。
这在大多数情况下都可以正常工作,除了某些数据框具有重复的列名,这就是它崩溃的时候。
是否有更有效的方法来进行此更新(即不使用循环),并且还能避免出现重复的列名的情况?
当前代码:
for col in statement_df.columns:
row = 0
while row < len(statement_df.index):
row_name = statement_df.index[row]
if statement_df[col][row] == "-":
#do nothing
print(statement_df[col][row])
elif statement_df[col][row].find(",") >= 0:
#statement_df.loc[col][row] = float(statement_df[col][row].replace(",",""))
x = float(statement_df[col][row].replace(",",""))
statement_df.at[row_name, col] = x
print(statement_df[col][row])
else:
x = float(statement_df[col][row])
statement_df.at[row_name, col] = x
print(statement_df[col][row])
row = row + 1
答案 0 :(得分:1)
在数据框本身上使用str.replace(',', '')
对于如下所示的数据框
Name Count
Josh 12,33
Eric 24,57
Dany 9,678
像这样应用
df['Count'] = df['Count'].str.replace(',', '')
df
它将为您提供以下输出
Name Count
0 Josh 1233
1 Eric 2457
2 Dany 9678
答案 1 :(得分:0)
您可以为此使用<ion-tabs tabbar #myTabs id="myTabs">
<ion-tab [root]="tab1Root" tabTitle="tab 1" ></ion-tab>
<ion-tab [root]="tab2Root" tabTitle="tab 2" ></ion-tab>
<ion-tab [root]="tab4Root" tabTitle="tab 3" ></ion-tab>
<ion-tab [root]="tab3Root" tabTitle="tab 4" ></ion-tab>
<ion-tab [root]="tab5Root" tabTitle="tab 5" ></ion-tab>
</ion-tabs>
功能-
iloc
for idx in range(len(df.columns)):
df.iloc[:, idx] = df.iloc[:, idx].apply(your_function)
中的代码应该能够处理一行中的输入。例如-
your_function