Maison > Questions et réponses > le corps du texte
A,B,两列数据
例如:
若B1,B2列相同(其中B列的数据随机,非升降序)
则在C列呈现A1,A2数据差..
如图:
用VBA比较简单,用Python怎么解答.
之前的问题描述实在糟糕,非常抱歉.
PHPz2017-04-18 10:17:23
Si la colonne B est la même, elle sera affichée dans la colonne C. Vous ne comprenez pas ? La bibliothèque standard prend en charge les cvs, ne suffirait-il pas de l'analyser et de la convertir en type de données python
迷茫2017-04-18 10:17:23
Les exigences ne sont pas très claires. En regardant votre image, si les données des colonnes A et B sont triées et qu'il y a au plus deux données identiques dans la colonne B, triez d'abord vos exigences
Les données d'origine se trouvent dans les colonnes A et B, qui sont toutes deux des nombres entiers. La colonne B est classée de petite à grande. Si la colonne B est la même, la colonne A est également classée de petite à grande. dans la colonne B sont les mêmes, la colonne A est Les valeurs correspondantes sont soustraites et le résultat est inséré dans la colonne C
Tout d'abord, les fichiers CSV peuvent être lus ligne par ligne. L'intervalle entre les différentes cellules d'une même ligne est ,
, et n à la fin de la ligne indique la fin. L'idée est donc de la lire ligne. par ligne, enregistrez-la sous forme de liste binaire et comparez-la dans l'ordre. Une fois la comparaison terminée, utilisez join pour insérer ,
et n et enregistrez-la dans le fichier csv. Le code est le suivant :
my_list = [[80, 7], [153, 7], [188, 19], [80, 20]]
for i in range(1,len(my_list)):
if my_list[i-1][1] == my_list[i][1]:
my_list[i].append(my_list[i][0] - my_list[i-1][0])
print my_list
# [[80, 7], [153, 7, 73], [188, 19], [80, 20]]