在DataFrame中的一列中,我有一些字符串,它们的长度需要限制为同一DataFrame中另一列中存在的值
我尝试过创建一个新列,并使用普通的python字符串索引将另一列作为值
以下是我正在尝试运行的代码:
import pandas as pd
data = [[5, 'LONSTRING'], [3, 'LONGERSTRING'], [7, 'LONGESTSTRINGEVER']]
df = pd.DataFrame(data, columns=['String Limit', 'String'])
df['Short String'] = df['String'][:df['String Limit']]
print(df)
我希望有一个字符串更短的新列:
String Limit String Short String
0 5 LONSTRING LONST
1 3 LONGERSTRING LON
2 7 LONGESTSTRINGEVER LONGEST
相反,我得到了一个类型错误:
TypeError: cannot do slice indexing on <class 'pandas.core.indexes.range.RangeIndex'> with these indexers [0 5
1 3
2 7
Name: String Limit, dtype: int64] of <class 'pandas.core.series.Series'>
似乎字符串索引不能这样做,因为df['String Limit']
是整个系列,而不仅仅是一行值—但是有其他方法可以这样做吗
问题是您需要分别筛选所有值,所以使用^{} 和
axis=1
作为行循环:或者在列表理解中使用
zip
:相关问题 更多 >
编程相关推荐