【发布时间】:2020-09-10 10:13:38
【问题描述】:
不确定我这样做是否正确 - 第一次在这里发帖,所以请温柔:)
Se 下图。
Print screen from my Jupyter Notebook
我要做的是从 df_Grundinladdning['Datan'] 数据帧创建一个新的数据帧,仅包含包含字符串“#TRANS”的行。
【问题讨论】:
标签: python pandas for-loop substring
不确定我这样做是否正确 - 第一次在这里发帖,所以请温柔:)
Se 下图。
Print screen from my Jupyter Notebook
我要做的是从 df_Grundinladdning['Datan'] 数据帧创建一个新的数据帧,仅包含包含字符串“#TRANS”的行。
【问题讨论】:
标签: python pandas for-loop substring
正确的方法描述here.循环,即使没有语法错误,也会非常非常慢。
【讨论】:
这是一种方法:
df = pd.DataFrame({"Datan": ["x", "TRANS y", "z", "TRANS u", "v", "TRANS w"]})
print(df)
new_df = df[df.Datan.str.contains("TRANS")]
print(new_df)
结果:
(original dataframe)
Datan
0 x
1 TRANS y
2 z
3 TRANS u
4 v
5 TRANS w
(new dataframe)
Datan
1 TRANS y
3 TRANS u
5 TRANS w
【讨论】:
您不需要遍历数据框,您可以通过以下方式轻松获取结果数据框:
df_transOnly= df_Grundinladdning[df_Grundinladdning["Datan"].str.contains('#TRANS')]
df_transOnly #for printing df
所以你会像这样得到所需的数据框:
Datan
5 #TRANS232
12 #TRANS455
20 #TRANS3144
104 #TRANS1234
500 #TRANS213
【讨论】: