我有一个Pandas数据框架。在A
列中有像[1, 5, 3]
这样的整数,在B
列中有像["abcdef", "ghijklmno", "qwertyuiop"]
这样的字符串
我想创建一个C
列,列B
第一个字符根据列A
。在我的例子中,我希望C
列像["a", "ghijk", "qwe" ]
我试着:
data_frame['C'] = data_frame.B.str[:data_frame["A"]]
但是它不工作。
您可以设置使用lambda函数并设置轴= 1来使用列a来设置B的字符串长度
df = pd.DataFrame({
'A' : [1, 5, 3,],
'B' : ["abcdef", "ghijklmno", "qwertyuiop"]
})
df['c'] = df.apply(lambda x : x['B'][:x['A']], axis = 1)
df
可以试试遍历这些列:
df['C'] = [b[:a] for a, b in zip(df['A'], df['B'])]