为简单起见,假设我们有一个包含字符串值的单列的数据框。我想创建第二列,其中包含一个整数,该整数表示串联形式的字符串中每个字符的ASCII值。请看下面。假设列A是我们的,B列是我们想要的。
Column_A Column_B
JJIIV 7474737386
OOEWW 7979698787
ZZXSW 9090888387
QLHMN 8176727778
WESDFG 876983687071
好的,所以看看A列中的第一个值JJIIV,我们通过以下步骤在B列中得出结果:1)将JJIIV分解为J' J' J& #39;,'我','我'' V&#39 ;. 2)取每个角色的ord()。 ord(' J')== 74等.3)连接每个ord值以创建bigint。
到目前为止,我能够完成以下任务。我只是不确定如何在数据框中创建额外的列并且'应用'每一行的逻辑。
import pandas as pd
raw_data = {'string_column': ['JJIIV', 'OOEWW', 'ZZXSW', 'QLHMN', 'WESDFG']}
df = pd.DataFrame(raw_data, columns = ['string_column'])
for i in df['string_column']:
print([ord(c) for c in i])
答案 0 :(得分:0)
您可以使用appply
和lambda
加入序数值来创建值的字符串:
In [114]:
df['ord'] = df['string_column'].apply(lambda x: ''.join([str(ord(e)) for e in x])).astype(np.int64)
df
Out[114]:
string_column ord
0 JJIIV 7474737386
1 OOEWW 7979698787
2 ZZXSW 9090888387
3 QLHMN 8176727778
4 WESDFG 876983687071
您可以将dtype
转换为int64
进行转换,请注意最后一个条目不适合32位int