使用urllib之后我有以下字符串:
def add_subtract_series(a, b):
return pd.Series((a + b, a - b))
df[['sum', 'difference']] = df.apply(
lambda row: add_subtract_list(row['a'], row['b']), axis=1)
使用替换和拆分后:
459,2277,617459268\n14619,99,19600737\n11297,99,18666551\n16603,99,19761406\n12660,99,28741324\n4543
但是,我想获得以下2D数组:
data = data.replace('\\n', ',').split(',')
['459', '2277', '617459268', '14619', '99', '19600737', '11297', '99', '18666551', '16603', '99', '19761406', '12660', '99', '28741324', '4543']
有没有办法在不使用459 2277 617459268
14619 99 19600737
11297 99 18666551...
的情况下将这个1D数组分解为2D数组?
当我说2D数组时,我指的是当每行为1x3列表时的列列表。
很容易理解。
谢谢。
答案 0 :(得分:1)
不要替换你的"行分隔符" by" column delimiters"。相反,用于拆分行分隔符上的字符串。然后拆分列分隔符上的每一行。
如果您的输入有新的换行符:
rows = data.split()
如果您的输入有一个字面反斜杠后跟字母n
而不是换行符:
rows = data.split('\\n')
无论哪种方式,现在你可以用逗号分割每一行:
matrix = [row.split(',') for row in rows]
答案 1 :(得分:0)
将此str保存为类似于s的字符串:
s='''459,2277,617459268\n14619,99,19600737\n11297,99,18666551\n16603,99,19761406\n12660,99,28741324\n4543'''
for i in s.split('\n'):
print (i)
459,2277,617459268
14619,99,19600737
11297,99,18666551
16603,99,19761406
12660,99,28741324
4543
或者如果您想在没有,
的情况下打印:
for i in s.replace(',' , ' ').split('\n'):
print (i)
459 2277 617459268
14619 99 19600737
11297 99 18666551
16603 99 19761406
12660 99 28741324
4543