我的一行代码有问题。 这是我想要实现的:
我尝试使用以下两行没有成功:
*df2 = df1.loc[(df1['Code'])[0:3] == reading_now]*
*df2 = df1[(str(df1.Code)[0:3] == reading_now)]*
答案 0 :(得分:0)
您可以使用
df2 = df1[df1['Code'].str[0:3] == reading_now]
例如:
data = ['abcd', 'cbdz', 'abcz', 'bdaz']
df1 = pd.DataFrame(data, columns=['Code'])
df2 = df1[df1['Code'].str[0:3] == 'abc']
df2将导致数据框的“代码”列包含“ abcd”和“ abcz”
答案 1 :(得分:0)
看起来您真的很接近第二次尝试。
您可以通过两种不同的方法解决此问题。
reading_now = 'AAA'
df1 = pd.DataFrame([{'Code': 'AAA'}, {'Code': 'BBB'}, {'Code': 'CCC'}])
解决方案:
df2 = df1[df1['Code'].str.startswith(reading_now)]
或
df2 = df1[df1['Code'][0:3] == reading_now]
df2
数据帧将包含以reading_now
字符串开头的行。