我不知道为什么我无法解决这个问题。但我有一列数字,我想把它变成一个字符串列表。我应该提到这个,当我最初发布这个,但这不是一个DataFrame或它来自一个文件这是一些代码的结果,抱歉不是试图浪费任何人的时间,我只是不想添加一堆杂乱。这正是它的打印方式。
这是我的数字栏。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div>
<h1>Input</h1>
<span>9781137012920 9780230339118 9781137012920 1137012927</span>
</div>
<div id="output">
<h1>Becomes</h1>
</div>
我希望他们看起来像这样。
3,1,3
3,1,3
3,1,3
3,3,3
3,1,1
我试图找到一种方法,不依赖于每行中有多少个数字或列中有多少组数字。
谢谢,真的很感激。
答案 0 :(得分:0)
假设您从DataFrame开始
df = pd.DataFrame([[3, 1, 3], [3, 1, 3], [3, 1, 3], [3, 3, 3], [3, 1, 1]])
df.astype(str).apply(lambda x: ','.join(x.values), axis=1).values.tolist()
看起来像:
['3,1,3', '3,1,3', '3,1,3', '3,3,3', '3,1,1']
答案 1 :(得分:0)
my $has_POPC = qr/ \s+ POPC \s+ /x;
#Start for lipid count
for my $lipid (1 .. $lipid_num) {
my $has_lipid = qr/ \s+ $lipid \s+ /x;
# First Carbon/Integer counter
for my $integer (2 .. 8) {
my $has_C2_integer = qr/ \s+ C2 $integer \s+ /x;
my $has_H_integer_R = qr/ \s+ H $integer R \s+ /x;
my $has_H_integer_S = qr/ \s+ H $integer S \s+ /x;
#Split line 1
for my $line (@data) {
chomp $line;
#Search 1.1
if ($line =~ $has_C2_integer && $line =~ $has_lipid && $line =~ $has_POPC) {
($x1[0], $y1[0], $z1[0]) = (split /\s+/ $line)[ 5, 6, 7 ];
}
#Search 1.2
if ($line =~ $has_H_integer_R && $line =~ $has_lipid && $line =~ $has_POPC) {
($x1[1], $y1[1], $z1[1]) = (split /\s+/ $line)[ 5, 6, 7 ];
}
#Search 1.3
if ($line =~ $has_H_integer_S && $line =~ $has_lipid && $line =~ $has_POPC) {
($x1[2], $y1[2], $z1[2]) = (split /\s+/ $line)[ 5, 6, 7 ];
}
}
}
}
答案 2 :(得分:0)
要将数据帧转换为字符串,请使用astype
函数:
df = pd.DataFrame([[3, 1, 3], [3, 1, 3], [3, 1, 3], [3, 3, 3], [3, 1, 1]])
df = df.astype('str')
然后,操作列变得简单,您可以创建一个新列:
In [29]:
df['temp'] = df[0] + ',' + df[1] + ',' + df[2]
df
Out[29]:
0 1 2 temp
0 3 1 3 3,1,3
1 3 1 3 3,1,3
2 3 1 3 3,1,3
3 3 3 3 3,3,3
4 3 1 1 3,1,1
然后将其压缩成一个列表:
In [30]:
list(df['temp'])
Out[30]:
['3,1,3', '3,1,3', '3,1,3', '3,3,3', '3,1,1']
答案 3 :(得分:0)
# Done in Jupyter notebook
# add three quotes on each side of your column.
# The advantage to dataframe is the minimal number of operations for
# reformatting your column of numbers or column of text strings into
# a single string
a = """3,1,3
3,1,3
3,1,3
3,3,3
3,1,1"""
b = f'"{a}"'
print('String created with triple quotes:')
print(b)
c = a.split('\n')
print ("Use split() function on the string. Split on newline character:")
print(c)
print ("Use splitlines() function on the string:")
print(a.splitlines())