我有以下熊猫数据框。
import pandas as pd
df = pd.read_csv('filename.csv')
print(df)
sample column_A
0 sample1 6/6
1 sample2 0/4
2 sample3 2/6
3 sample4 12/14
4 sample5 15/21
5 sample6 12/12
.. ....
column_A
中的值不是分数,必须对这些数据进行操作,以便我可以将每个值转换为0s
和1s
(而不是将整数转换为它们的二进制对应值)。上面的“分子”给出了
1s
的总数,而“分母”给出了0s
和1s
的总数。因此,该表实际上应采用以下格式:
sample column_A
0 sample1 111111
1 sample2 0000
2 sample3 110000
3 sample4 11111111111100
4 sample5 111111111111111000000
5 sample6 111111111111
.. ....
我从未解析过整数来输出0和1这样的字符串。怎么做到的?是否有“pandas方法”可用于
lambda
表达式?pythonic字符串解析还是regex? 最佳答案
首先,假设您编写了一个函数:
def to_binary(s):
n_d = s.split('/')
n, d = int(n_d[0]), int(n_d[1])
return '1' * n + '0' * (d - n)
以便,
>>> to_binary('4/5')
'11110'
现在你只需要使用
pandas.Series.apply
: df.column_A.apply(to_binary)